2011-08-13 112 views
21

可能重复:
how to use ssh to run shell script on a remote machine?通过SSH远程运行完整的命令

我试图做出对我的远程服务器的日常cron作业运行到通过ssh自动登录到一个bash脚本另一个unix盒子,运行一些命令然后离开。

#!/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; 
           " 

我遇到的问题是我需要修改我目前现有的代码做一些稍微复杂的每个命令之前一样

if [ $(ls /share/Public/backups/set1 -1 | wc -l) -gt 4 ] then run above command 
fi 

我怎么会去遥控器上运行此命令ssh机器,而不是我的本地cron之一?

+0

@Wooble另一个问题是要求在远程计算机上运行shell脚本的方法,因为这是解决此问题的解决方案。我认为这个问题是不同的。 – mopsled

回答

3

写一个脚本,将其复制到远程机器和SSH只运行该脚本。

+0

这是我在我的服务器上使用的方法。 – djhaskin987

1

另一个解决方法是使用python。有一个名为pexpect的模块,可以解决您的问题,甚至更复杂的情况。