Para interactuar con el servidor remoto agregamos -t, así:
ssh -t rpi htop
Ejecutar un script local en servidor remoto
ssh rpi 'bash -s' < mi-script-local.sh
Ejecutar script como otro usuario
ssh rpi "sudo su pollo -c 'mkdir directorio' "
Ejecutar el mismo script en muchos servidores
for i in $(cat lista-servidores.txt)
do
• ssh usuario@$i "sudo su usuario-con-privilegios -c 'apt update && apt upgrade -y' "
done
Automatizar tarea anterior
Creamos lista-servidores.txt con el siguiente contenido:
192.168.1.5
rpi
192.168.1.20
Creamos script.sh con el siguiente contenido:
#!/bin/bash
uptime
Creamos remote-exec.sh con el siguiente contenido:
#!/bin/bash
servidores=$(cat lista-servidores.txt)
for host in $servidores; do
ssh $host 'bash -s' < script.sh
done
Damos permisos de ejecución a ambos scripts:
chmod +x script.sh remote-exec.sh
Ejecutamos el script:
bash remote-exec.sh