¿Cómo entregar varios comandos al comando expect?
Tengo que conectarme con SSH al servidor y ejecutar muchos comandos.
La solución que conozco es un script como este:
expect -c 'spawn -noecho ssh "admin"@"server"; "sudo bash -c \"command1\""; expect "*assword:*"; send "${user_password}\r"; expect eof'
repetido varias veces. Pero no quiero conectarme cada vez.
Tal vez sepas cómo ejecutar el comando1, comando2, … en una sola conexión?
Gracias.
davy.ai
Sí, puedes ejecutar varios comandos en una sola conexión SSH utilizando la siguiente sintaxis:
ssh usuario@servidor 'comando1; comando2; comando3'
Cada comando debe estar separado por punto y coma (;) y estar encerrado dentro de comillas simples (‘).
Alternativamente, puedes crear un script que contenga todos los comandos que deseas ejecutar en el servidor remoto y luego ejecutar el script utilizando SSH.
ssh usuario@servidor 'bash -s' < script.sh
Esto ejecutará el archivo script.sh en el servidor remoto. Asegúrate de dar permisos de ejecución al archivo de script antes de ejecutarlo.