2011-08-13 19 views
21

Duplicar posibles:
how to use ssh to run shell script on a remote machine?Ejecución de mandatos completos a través de SSH remota

que estoy tratando de hacer un script bash que se ejecuta en los trabajos de cron diario de mi servidor remoto para iniciar sesión automáticamente a través de ssh para otra caja de Unix, ejecuta algunos comandos y luego vete.

#!/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 tengo que 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 hago para ejecutar este comando en el control remoto ssh máquina y no en mi cron local?

+0

@Wooble La otra pregunta era preguntar por una forma de ejecutar un script de shell en una computadora remota, ya que esa es una solución al problema para este poster. Creo que la pregunta es lo suficientemente diferente. – mopsled

Respuesta

3

escribir un guión, copiarlo en el equipo remoto y desde plazo ssh sólo que la escritura.

+0

Este es el enfoque que uso en mis servidores. – djhaskin987

1

Otra solución consiste en utilizar python. Hay un módulo llamado pexpect que puede resolver su problema, e incluso un escenario más complicado.

Cuestiones relacionadas