2011-10-06 53 views
6

我有一個每天在我的服務器上運行的shell腳本。它做了一些內部清理和連接到遠程主機來執行其他任務,即捕獲遠程腳本的退出代碼?

#!/bin/bash 

#do something... 
...locally... 

#run remote script... 
ssh [email protected] "/opt/process/verify.sh" 

exit 

它工作正常,但爲了安全起見,我想捕捉(如果可能)從「/選擇/處理/驗證返回碼.SH」,即

  • ,如果失敗,則返回‘1’,發送電子郵件到管理員
  • 如果成功,返回‘0’,併發送電子郵件至開發商。

我開始閱讀有關命令trap。我可以用它來達到這個目的嗎?還有其他選擇嗎?

回答

18

ssh返回有問題的命令的返回值,或者如果ssh本身發生錯誤,則返回255。只需檢查此值並採取適當的措施。

8

您可以使用$?變量來獲得響應代碼。例如:

% ssh somebox /bin/true 
% echo $? 
0 
% ssh somebox /bin/false 
% echo $? 
1 
相關問題