通过远程SSH运行完整的命令
可能重复:
如何使用ssh在远程机器上运行shell脚本?
我试图在远程服务器的每日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上运行?
尝试在本地编写你的bash脚本并调用:
ssh user@example.com 'bash -s' < local_script.sh
(在这里的讨论中找到)
编写一个脚本,将其复制到远程机器,并从ssh运行该脚本。
另一个解决方法是使用python。 有一个叫做pexpect的模块可以解决你的问题,甚至更复杂的场景。
链接地址: http://www.djcxy.com/p/97139.html