El 30 de agosto de 2010 21:30, Juan Marcos Delgado Alcantar < juanm...@gmail.com> escribió:
> 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 <an...@angel-alvarez.com.ar> > > > >> 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 <ang...@froga.net> > >> > El Thu, 26 Aug 2010 21:47:52 -0300 > >> > Rino Rondan <villadalm...@gmail.com> 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/<http://infolinux.wordpress.com/2007/10/27/automatiza-tus-tareas-en-linux-%0Asin-saber-programar/> > > Suerte. > > -- > Marcos Delgado > > > -- > To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org > with a subject of "unsubscribe". Trouble? Contact > listmas...@lists.debian.org > Archive: http://lists.debian.org/i5h0si$qr...@dough.gmane.org > > http://www.serverwatch.com/tutorials/article.php/3883871/Automation-With-Expect-an-Open-Source-Software-Utility.htm Saludos