捕获远程脚本的退出代码?

时间:2011-10-06 17:09:07

标签: bash ssh

我每天都在我的服务器上运行一个shell脚本。它进行一些房屋清洁并连接到远程主机以执行其他任务,即

#!/bin/bash

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

#run remote script...
ssh user@remotehost "/opt/process/verify.sh"

exit

它工作正常但是为了安全我想捕获(如果可能)来自“/opt/process/verify.sh”的返回码,即

  • 如果失败,返回“1”并发送电子邮件给管理员
  • 如果成功,返回“0”并向开发者发送电子邮件。

我开始阅读有关命令trap的内容。我可以将它用于此目的吗?还有其他选择吗?

3 个答案:

答案 0 :(得分:19)

ssh返回有问题的命令的返回值,如果ssh本身发生错误,则返回255。只需检查此值并采取适当的措施。

答案 1 :(得分:8)

你可以使用$?变量来获取响应代码。例如:

% ssh somebox /bin/true
% echo $?
0
% ssh somebox /bin/false
% echo $?
1

答案 2 :(得分:5)

ssh user@remotehost "/opt/process/verify.sh"
echo $?

echo $?打印返回代码