es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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.

Tags:  , ,

Answer

  1. Avatar for 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.

Comments are closed.