通过远程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

上一篇: Running full commands through remote ssh

下一篇: storing remote terminal output in a variable