[LUG.ro] Script con expect y esas yerbas..

Alberto Ferrer lugro@lugro.org.ar
Thu, 6 Nov 2003 14:32:01 -0300


--=.S28r5nrr1:.c6.
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Hola, automatizando las cosas en mi trabajo pense em cambiar los root de 20 servers, y me aburri de cambiarlos 1x1, quiero cambiarlos todo de un saque me dije, para eso esta expect, y me hice un script el cual me deja ejecutar un comando solo con colocarla clave de root en el mismo archivo, onda ./ssh-cmd lapc.com uname -a , y me devuelve el resultado, sin tener qu hacer login ni nada ;), como puedo hacer para ejecutar en los 20 de la misma forma el passwd y cambiarle la clave a los 20 juntos.

Adjunto mi script.



----------------------------------------------

#!/usr/bin/expect --
set pwd  "MiclavedeRoot"
set host [lindex $argv 0]
set cmd  [lrange $argv 1 99]
spawn ssh  -o "StrictHostKeyChecking no" root@$host echo sshcmdstart\;$cmd\;echo sshcmddone
set timeout 90
expect {
	"*assword:" {
		sleep 1;
        	send "$pwd\r"
	}
	"*REMOTE HOST IDENTIFICATION*" {
		puts "\n\nsshhostproblem\n"
                puts "\n\nsshcmddone\n"
                exit
	}
        "*Name or service not known*" {
                puts "\n\nsshhostnotfound\n"   
                puts "\n\nsshcmddone\n"
                exit
        }
        "*Connection timed out*" {
                puts "\n\nsshconnecttimeout\n"
                puts "\n\nsshcmddone\n"
                exit
        }
	"*Connection closed*" {
		puts "\n\nsshdisconnectproblem\n"
                puts "\n\nsshcmddone\n"
                exit
	}
	"*Permission denied, please try again*" {
		puts "\n\nsshdisconnectproblem\n"
                puts "\n\nsshcmddone\n"
                exit
	}
	"*Connection refused*" {
		puts "\n\nsshdisconnectproblem\n"
                puts "\n\nsshcmddone\n"
                exit
         }

}
set timeout 12000
expect {
        "\nsshcmddone" {
                sleep 1
                exit
        }
        "Permission denied, please try again*" {
                puts "\n\nsshcmdpermissiondeny\n"
                puts "\n\nsshcmddone\n"
                exit
        }
}

----------------------------------------------
--------------------------
     Alberto Ferrer 
 albertof@barrahome.org
http://www.barrahome.org
JID:albertof@barrahome.org
--------------------------



--=.S28r5nrr1:.c6.
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQE/qoWWq6VszqivP7kRAhCXAJ46efsvZeOm6RhF0v4WgNHwc6fClACghLQd
wxqMFd2ldrect21R8Do013M=
=N6sZ
-----END PGP SIGNATURE-----

--=.S28r5nrr1:.c6.--