bash - remoto - script sftp automatizado linux
Ejecución de comandos completos a través de ssh remoto (3)
Escriba un script, cópielo en el equipo remoto y desde ssh ejecute solo ese script.
Posible duplicado:
cómo usar ssh para ejecutar script de shell en una máquina remota?
Estoy intentando hacer un script bash que se ejecute en las tareas cron diarias de mi servidor remoto para iniciar sesión automáticamente a través de ssh en otro cuadro de Unix, ejecutar algunos comandos y luego salir.
#!/bin/bash
ssh machinehost.com -l admin -p 2222 "/usr/bin/find /share/Public/backups/set0 -mtime +14 | xargs rm -f;
/usr/bin/find /share/Public/backups/set1 -mtime +4 | xargs rm -f;
/usr/bin/find /share/Public/backups/set2 -mtime +3 | xargs rm -f;
/usr/bin/find /share/Public/backups/set3 -mtime +21 | xargs rm -f;
/usr/bin/find /share/Public/backups/set4 -mtime +2 | xargs rm -f;
/usr/bin/find /share/Public/backups/set5 -mtime +2 | xargs rm -f;
"
El problema que estoy teniendo es que necesito modificar mi código existente actual para hacer algo un poco más complicado antes de cada comando como
if [ $(ls /share/Public/backups/set1 -1 | wc -l ) -gt 4 ] then run above command
fi
¿Cómo podría ejecutar este comando en la máquina ssh remota y no en mi cron local?
Intenta escribir tu script bash localmente y llamar:
ssh [email protected] ''bash -s'' < local_script.sh
Otra solución es usar Python. Hay un módulo llamado pexpect que puede resolver su problema, y un escenario aún más complicado.