2 votos

Cómo echo o pegar comandos en un terminal SSH con un script de shell

He estado teniendo un problema últimamente tratando de averiguar cómo hacer que mi script de shell para pegar un comando en un terminal ssh automáticamente después de iniciar una sesión en una terminal ssh. Estoy tratando de configurar un cron ficha que se va a ejecutar mi script de shell que automáticamente inicia sesión en un terminal ssh para mi Ubiquiti punto de acceso y se inserta un comando para activar el LED apagado a una hora determinada. Hasta ahora he sido capaz de SSH en el punto de acceso cuando se ejecuta la secuencia de comandos de shell, pero cuando inicia sesión en la que no se pegue el comando. Después de que me manualmente la salida de la terminal SSH, el comando echo carreras y poner el comando en después de salir de la terminal. Me preguntaba si alguien podría ayudarme a resolver esto. He estado buscando por todas partes pero no puede encontrar ninguna respuesta. Gracias de antemano. Este es el código que tengo actualmente en mi script de shell. El comando quiero ser capaz de ejecutar en la terminal SSH es ("mgmt.led_pattern_override=2" >> /var/etc/persistente/cfg/mgmt)

   #!/bin/sh
sshpass -p "password" ssh -o StrictHostKeyChecking=no username@192.168.1.3;
   echo '"mgmt.led_pattern_override=2" >> /var/etc/persistent/cfg/mgmt';
exit

2voto

steeldriver Puntos 19092

Lugar de inicio interactivo de sesión ssh, pasar el comando echo directamente como argumento para ssh:

sshpass -p "password" ssh -o StrictHostKeyChecking=no username@192.168.1.3 '
   echo "mgmt.led_pattern_override=2" >> /var/etc/persistent/cfg/mgmt
'

La otra opción sería el uso de expect a la secuencia de comandos de la sesión interactiva - pero eso es demasiado complicado para este caso.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: