![命令行和 crontab 之间的输出不同](https://linux22.com/image/158371/%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%92%8C%20crontab%20%E4%B9%8B%E9%97%B4%E7%9A%84%E8%BE%93%E5%87%BA%E4%B8%8D%E5%90%8C.png)
每当两台不同机器之间的连接丢失时,我会尝试发送警报。
基本上,我需要从 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 一起工作时失败了。
提前致谢。