Estamos acostumbrados a ejecutar comando en nuestra maquina local de manera sencilla. Esto también se hace sencillo utilizando la herramienta EXPECT, a continuación unos pequeños ejemplos de uso :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/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 -- \"$PASS\r\" send -- \"\r\" expect eof ") echo "===============" echo "$VAR" |
Le damos permisos de jecución : chmod +x execute.sh y ya podremos utilizarlo : ./execute.sh “ls -l” Con esto te mostrara el listado del servidor en donde hayas lanzado el comando. Otros ejemplos para bajar o subir archivos a un servidor mediante el comando SCP :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#!/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 -- \"$PASS\r\" send -- \"\r\" expect eof ") echo "===============" echo "$VAR" |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/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 -- \"$PASS\r\" send -- \"\r\" expect eof ") echo "===============" echo "$VAR" |