El Sat, 28 Aug 2010 02:04:17 -0300, Rino Rondan escribió: > Es que no hay python.... :( no es un entorno donde pueda instalar nada.. > es hacer conlo que hay lo que se pueda ... igual tengo que probar porque > me agarro la duda con expect cuando mando un send \" `ls -la`\r\" > > todo lo que ejecute con esas comillas o con $(ls -la ) lo resuelve > primero de donde se ejecuta y no manda el comando al equipo remoto.. asi > que voy a tener que leer la documentacion de como funciona bien el > send.. pero si alguno ya paso por esto.. > > 2010/8/27 Angel Claudio Alvarez <[email protected]> > >> El vie, 27-08-2010 a las 08:32 -0300, Rino Rondan escribió: >> > Buenas: >> > >> > Me conecto con llaves o con ssh pero no todos tienen instalada las >> > llaves. >> > La idea es desde un servidor conectarse remotamente a otro servidor, >> > correr un programa, este me genera una archivo, lo tengo que >> > renombrar luego lo tengo que enviar por ftp. >> > Con ssh no me lo plantee porque tiene que ser totalmente interactivo >> > yaque no todos tienen llaves. >> > Pero acepto otras soluciones :=) >> > >> > >> python y su modulos pexpect >> (hacerlo en bash es un dolor testicular) >> >> > Saludos >> > >> > 2010/8/27 AngelD <[email protected]> >> > El Thu, 26 Aug 2010 21:47:52 -0300 >> > Rino Rondan <[email protected]> escribió: >> > >> > >> > > Buenas: >> > > >> > > Tengo este script del expect >> > > >> > > #!/bin/bash >> > > HOST=$1 >> > > USER=$2 >> > > PASS=$3 >> > > >> > > VAR=$(expect -c " >> > > #set timeout -1 >> > > spawn ssh $u...@$host >> > > expect \"*?assword:*\" >> > > send -- \"$PASS\r\" >> > > expect \"$ \" >> > > #send -- \"\r\" >> > > send \"sudo su -\r\" >> > > expect \"$ \" >> > > send \"cd /var/tmp/xxx/xxxgrab\r\" >> > > expect \"$ \" >> > > send \"/usr/bin/bash\r\" >> > > expect \"$ \" >> > > send \"cd outputs\r\" >> > > expect \"$ \" >> > > #send \" ls -la|head -1\r\" >> > > send \"cp `ls -ls |sort -nr -k 7 -k 8 |awk '{print $10}'| >> > head -1` >> > > rino\r\" #send \"cp $(ls -ls |sort -nr -k 7 -k 8 |awk >> > '{print >> > > $10}'|head -1 rino\r\" expect \"$ \" >> > > send \"exit\r\" >> > > ") >> > > echo "=======RUN========" >> > > echo "$VAR" >> > > >> > > >> > > y lo que me hace es me trae (el ls) lo que hay en el equipo >> > donde >> > > tire el expect y no donde me acabo de conectar por ssh. >> > > >> > > la salida es >> > > >> > > xxxx:# cd /var/tmp/emc/emcgrab >> > > xxx:# /usr/bin/bash >> > > xxx:# cd outputs >> > > xxx:# cp grabtesting rino >> > > cp: cannot access grabtesting >> > > xxx:# >> > > cx...@xxx:/xxxhome/cxxxxx/bin % >> > > >> > > y ese grabtesting lo tengo en mi home directory desde donde >> > ejecute >> > > el grab. >> > > >> > > c...@xxx:/xxxhome/cxxxxx/bin % ls -la grab* -rwxr----- 1 >> > > cxxxxx whsysadm 597 Aug 26 17:31 >> > grabtesting >> > > cxx...@xxxxxx:/xxxhome/cxxxxx/bin % >> > > >> > > La idea es que al conectarme por ssh al equipo remoto entre >> > a un >> > > directorio, filtro para buscar justo el archivo que quiero >> > > y >> > luego >> > > poder copiarlo asi lo renombro, para luego enviar ese >> > archivo a un >> > > ftp, asi que tambien tendria que guardar el nuevo nombre un >> > una >> > > variable para que cuando lo suba al ftp le ponga ese valor. >> > > se entiende?? >> > > en el mismo proceso que invoco en la variable VAR 1 >> > > conectarme por ssh >> > > 2 ir al path correspondiente >> > > 3 obtener y copiar un file con otro nombre 4 obtener ese >> > > file nuevo y guardarlo en una variable para >> > que lo use >> > > expect 5 conectarme por ftp >> > > 6 enviarlo el archivo guardado en la varia ble al ftp >> > > >> > > Me quedo sin saber como hacer el paso 3 porque me devuelve >> > otra cosa, >> > > despues nose como sera para guardar la variable.. porque >> > > tam >> > bien me >> > > toma todo como si fuera el equipo que ejecute el script. >> > >> > >> > Vayamos por partes. ¿Intentas utilizar expect para >> > conectarte a >> > una máquina por ssh?. Porque eso ya lo hace el propio ssh con >> > las >> > claves del fichero '~/.ssh/authorized_keys'. Una vez >> > realizado esto, >> > todo lo que comentas creo que se puede realizar utilizando >> > "ssh MACHINE >> > comando". ¡Incluso se puede automatizar el ftp con el fichero >> > '.netrc'! >> > >> > Lo de guardar ficheros en variables es un poco bruto, >> > sobre >> > todo cuando es innecesario. >> > >> > saludos --- Angel
Yo use esta guía para crear un comando para apagar un servidor local. A lo mejor te sirve, si te interesa te mando el programa autoexpect, que ya no esta disponible en el enlace. http://infolinux.wordpress.com/2007/10/27/automatiza-tus-tareas-en-linux- sin-saber-programar/ Suerte. -- Marcos Delgado -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

