Sencillo script en Bash para ejecutar un comando remoto mediante SSH

on

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:
01#!/bin/bash
02HOST="aqui_pon_la_maquina_remota"
03USER="aqui_pon_el_usuario_remoto"
04PASS="aqui_pon_el_password_remoto"
05CMD=$@
06VAR=$(expect -c "
07spawn ssh -o StrictHostKeyChecking=no $USER@$HOST $CMD
08match_max 100000
09expect \"*?assword:*\"
10send -- \"$PASS\r\"
11send -- \"\r\"
12expect eof
13")
14echo "==============="
15echo "$VAR"
Y listo!, dale permisos de ejecución
$ 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.
Actualizado | 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.
01#!/bin/bash
02 
03HOST="aqui_servidor"
04USER="aqui_usuario"
05PASS="aqui_password"
06CMD=$@
07 
08VAR=$(expect -c "
09spawn scp -r $USER@$HOST:$CMD .
10match_max 100000
11expect \"*?assword:*\"
12send -- \"$PASS\r\"
13send -- \"\r\"
14expect eof
15")
16echo "==============="
17echo "$VAR"
01#!/bin/bash
02 
03HOST="aqui_servidor"
04USER="aqui_usuario"
05PASS="aqui_password"
06FICHEROS=$1
07DIRECTORIO_REMOTO=$2
08 
09VAR=$(expect -c "
10spawn scp -r $FICHEROS $USER@$HOST:$DIRECTORIO_REMOTO
11match_max 100000
12expect \"*?assword:*\"
13send -- \"$PASS\r\"
14send -- \"\r\"
15expect eof
16")
17echo "==============="
18echo "$VAR"

Bloggroll

Páginas vistas en total

Blog Archive