Ir al contenido principal

Sencillo 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:
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"

Entradas populares de este blog

Fallo al obtener la lista de compartición del servidor

 - Ubuntu Karmic Koala El problema. El detalle es que a veces tengo que revisar archivos que están en otras computadoras que utilizan windows. Al momento de darle en el menú Lugares - Red - Red de Windows y al elegir el grupo de trabajo en el que están mis equipos me aparece el siguiente error. No se puede montar el lugar. Fallo al obtener la lista de compartición del servidor. La solución . La encontré en este articulo de los Foros de Ubuntu, lo voy a copiar tal cual, espero que no le moleste al autor y solo a manera de respaldo. # — Aquí inicia el articulo de los foros de Ubuntu – 1- En principio es necesario que estén instalados: samba samba-common smbclient winbind   2- Luego editar el archivo /etc/samba/smb.conf sudo gedit /etc/samba/smb.conf   A los cambios necesarios para adaptar el sistema, según los tutoriales de samba es necesario tener presente que: a- Donde dice workgroup = WORKGROUP, reemplazar WORKGROUP por el nombre de grupo de ...

Descargar Packet Tracer 5.2 [Windows y Linux]

Packet Tracer 5.2 [Windows y Linux] Packet Tracer es la herramienta de aprendizaje y simulación de redes interactiva para los instructores y alumnos de Cisco CCNA. Esta herramienta les permite a los usuarios crear topologías de red, configurar dispositivos, insertar paquetes y simular una red con múltiples representaciones visuales. Packet Tracer se enfoca en apoyar mejor los protocolos de redes que se enseñan en el currículum de CCNA. Este producto tiene el propósito de ser usado como un producto educativo que brinda exposición a la interfaz comando – línea de los dispositivos de Cisco para practicar y aprender por descubrimiento. Packet Tracer 5.2 es la última versión del simulador de redes de Cisco Systems, herramienta fundamental si el alumno está cursando el CCNA o se dedica al networking. En este programa se crea la topología física de la red simplemente arrastrando los dispositivos a la pantalla. Luego clickando en ellos se puede ingresar ...

Mensaje de bienvenida en la Consola

Es una pequeña utilidad para mostrar texto ASCII en la consola. Se llama Figlet y la podemos instalar en Ubuntu con “sudo apt-get install figlet”. Podemos hacer que aparezca un mensaje de bienvenida en la consola si añadimos estas lineas al archivo “$HOME/.bashrc”: #Mensaje figlet “Texto Que quieras $USER”