命令行和 crontab 之间的输出不同

命令行和 crontab 之间的输出不同

每当两台不同机器之间的连接丢失时,我会尝试发送警报。

基本上,我需要从 PC N°2 上查看是否已建立从 PC N°4 到 PC N°5 上的端口 6031 的连接。

PC N°2 具有 ubuntu 服务器 16.04、4 和 5、Windows Server 2012。

实际上我可以看到连接,但无法发送警报。

我目前正在使用这个小脚本。

alerta=$(sshpass -p 'password' ssh [email protected] netstat -na | grep "6031")

if [[ $? != 0 ]]; then
    (Here goes a code that sends a SMS to my phone saying everything is ok)
else [[ $alerta ]]; then
    (Here goes a code that sends a SMS to my phone saying something is not ok)
fi

这是我在命令行中运行命令时的输出。

user2@pc2:~$ sshpass -p 'password' ssh [email protected] netstat -na | grep "6031"
  TCP    10.8.0.4:54961      10.8.0.5:6031       ESTABLISHED
cra@atlas:~$

它可以工作,但是当我使用 crontab 时,它只是发送“错误”消息。

该命令适用于 root 和用户帐户,只是当我尝试让它与 cron 一起工作时失败了。

提前致谢。

相关内容