2011-08-13 153 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的模塊,可以解決您的問題,甚至更復雜的情況。