Running full commands through remote ssh
Possible Duplicate:
how to use ssh to run shell script on a remote machine?
I am trying to make a bash script that runs on my remote server's daily cron jobs to automatically login through ssh to another unix box, run a few commands and then leave.
#!/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;
"
The problem I am having is I need to modify my current existing code to do something a little more complicated before each command like
if [ $(ls /share/Public/backups/set1 -1 | wc -l ) -gt 4 ] then run above command
fi
How would I go about running this command on the remote ssh machine and not on my local cron one?
Try writing your bash script locally and calling:
ssh user@example.com 'bash -s' < local_script.sh
(Found in the discussion here)
编写一个脚本,将其复制到远程机器,并从ssh运行该脚本。
Another workaround is to use python. There is a module called pexpect that can solve your problem, and even more complicated scenario.
链接地址: http://www.djcxy.com/p/97140.html上一篇: 使用shell脚本在远程服务器上执行命令
下一篇: 通过远程SSH运行完整的命令