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

Alberto Ferrer lugro@lugro.org.ar
Mon, 10 Nov 2003 19:08:55 -0300


Hola, la cosa era asi :)

-------
[root@barrahome root]# cat /scripts/cmd 
#!/bin/bash
echo -n "Que decea Ejecutar:"
read cmd
for server in `cat /scripts/lista-servers`; 
do /scripts/sshnwd $server $cmd; 
done
[root@barrahome root]#
-------


-------
[root@barrahome root]# cat /scripts/sshnwd
#!/usr/bin/expect --
set pwd  "MiClave"
set nwd  "NuevaClave"
set host [lindex $argv 0]
spawn ssh  -o "StrictHostKeyChecking no" root@$host echo sshcmdstart\;passwd\;echo sshcmddone
set timeout 90
expect "*assword:" 
sleep 1;
send "$pwd\r"
sleep 1;
expect "*New password:"
send -- "$nwd\r"
expect "*Retype new password:*"
send -- "$nwd\r"
expect "*passwd: all authentication tokens updated successfully*"
exit
set timeout 12000
expect "\nsshcmddone" 
sleep 1
exit
[root@barrahome root]# 
-------


-------
[root@barrahome root]# cat /scripts/lista-servers 
vlan9.dattatec.com
vlan8.dattatec.com
vlan7.dattatec.com
vlan6.dattatec.com
vlan5.dattatec.com
vlan4.dattatec.com
vlan3.dattatec.com
vlan2.dattatec.com
vlan1.dattatec.com
[root@barrahome root]# 
-------



PD:Gracias por la desinterezada ayuda =)

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


El 08 Nov 2003 07:30:18 -0300
Federico Wiecko <fwiecko@myrealbox.com> Escribio:

> Es esto lo que queres ??  (a lo mejor no te entiendo)
> 
> for i in `cat mis_servers`
> do
>      cambia_contraseña $i
> done
> 
> 
> Otra forma de hacerlo y para no complicarte la vida con el expect es
> usar claves rsa mediante ssh, que por supuesto hay que configurar muy
> bien (si te interesa leete el ssh-keygen). 
> 
> El jue, 06-11-2003 a las 14:32, Alberto Ferrer escribió:
> > 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
> > --------------------------
> > 
> > 
> 
> 
> 
> _______________________________________________
> Lugro mailing list
> Lugro@lugro.org.ar
> http://www.lugro.org.ar/mailman/listinfo/lugro
> 
> 


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