可能重复:
how to use ssh to run shell script on a remote machine?
我正在尝试创建一个在我的远程服务器的每日cron作业上运行的bash脚本,以自动通过ssh登录到另一个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 :(得分:47)
答案 1 :(得分:3)
编写脚本,将其复制到远程计算机,然后从ssh运行该脚本。
答案 2 :(得分:1)
另一种解决方法是使用python。有一个名为pexpect的模块可以解决您的问题,甚至更复杂的情况。