Esta pagina se visualiza mejor usando el navegador Mozilla Firefox, Opera, Google Chrome o Safari
Autor
kolko
Great User
Great User User
Posts: 7446
Comentarios:653
Puntos: 15854

Desconectado


Script en Bash para ejecutar un comando remoto mediante SSH



Estamos acostumbrados a ejecutar de manera muy simple comandos en nuestra máquina local y si esto fuera tambien fácil de hacer respecto a otra máquina remota. Veamoslo con un sencillo script en bash (nota: necesitas tener “expect” instalado en tu máquina local).

Crea un script “execute.sh” con el siguiente contenido:



execute.sh dijo:
#!/bin/bash
HOST="aqui_pon_la_maquina_remota"
USER="aqui_pon_el_usuario_remoto"
PASS="aqui_pon_el_password_remoto"
CMD=$@
VAR=$(expect -c "
spawn ssh -o StrictHostKeyChecking=no $USER@$HOST $CMD
match_max 100000
expect "*?assword:*"
send -- "$PASSr"
send -- "r"
expect eof
"
echo "==============="
echo "$VAR"




Y listo!, dale permisos de ejecución

[FONT=Courier New]chmod +x execute.sh


y ya puedes emplearlo, por ejemplo con:

./execute.sh “ls -l”

Te mostrara un listado de archivos pero de la maquina remota.
Genial, para automatizar algunas tareillas.

Ya de paso y basandome en el ejemplo os dejo los scripts “download.sh” y “upload.sh” que acabo de implementar y pueden usarse para subir y bajar ficheros al servidor mediante scp (Secure Copy).[/FONT]

download.sh


download.sh dijo:
#!/bin/bash

HOST="aqui_servidor"
USER="aqui_usuario"
PASS="aqui_password"
CMD=$@

VAR=$(expect -c "
spawn scp -r $USER@$HOST:$CMD .
match_max 100000
expect "*?assword:*"
send -- "$PASSr"
send -- "r"
expect eof
"
echo "==============="
echo "$VAR"




upload.sh


upload.sh dijo:
#!/bin/bash

HOST="aqui_servidor"
USER="aqui_usuario"
PASS="aqui_password"
FICHEROS=$1
DIRECTORIO_REMOTO=$2

VAR=$(expect -c "
spawn scp -r $FICHEROS $USER@$HOST:$DIRECTORIO_REMOTO
match_max 100000
expect "*?assword:*"
send -- "$PASSr"
send -- "r"
expect eof
"
echo "==============="
echo "$VAR"




OJO, hay que tener en cuenta que queda expuesto el usuario y la contraseña para loguearse en la maquina remota.

"La carita se reemplaza con " ) sin el espacio en el medio"

No he tenido tiempo de probarlo, esta noche lo pruebo y les comento.
Saludos

Fuente


Informacion

Opciones
Puntos
Los usuarios no registrados no pueden dar puntos
Opciones

    Para poder comentar debes estar registado, si aún no lo hiciste haz click AQUÍ

Nivel-x - Copyright © 2010 - Todos los derechos reservados
Protocolo - Terminos y Condiciones - Denuncias - Contactanos - Androideros - Blog android - Foro Androide