Necesita ayuda para ejecutar y eliminar un script bash remoto a través de un script bash local

Necesita ayuda para ejecutar y eliminar un script bash remoto a través de un script bash local

Estoy intentando crear un script bash que enviará un script a un servidor remoto, ssh (usando una clave ssh que ya está instalada) al servidor remoto, ejecutará el script cargado y luego eliminará el script remoto cuando esté terminado. No tengo claro cómo ejecutar una sesión ssh dentro de un script bash. Estos son los comandos que uso para hacerlo desde la línea de comandos:

scp my_script.sh [email protected]:/usr/home/user/
ssh [email protected]
>sh my_script.sh
>rm myscript.sh
>exit

¿Cómo puedo crear un script para la parte ssh de mi lista de comandos? ¡Gracias!

Respuesta1

ssh ejecutará los comandos pasados ​​como argumentos en la máquina remota. Lo siguiente debería hacer lo que quieras:

ssh [email protected] 'sh my_script.sh; rm my_script.sh'

Respuesta2

También puede omitir la copia y eliminación del archivo y hacer algo como esto.

cat my_script.sh | ssh user@host bash

Respuesta3

También podrías investigar el uso de Fabric, una biblioteca de Python para administración de sistemas a través de SSH:

http://docs.fabfile.org/0.9.1/

Es muy sencillo para empezar pero muy potente, especialmente en varios servidores.

información relacionada