用于服务器警报的 Unix shell 脚本

用于服务器警报的 Unix shell 脚本

下面是我的 shell 脚本,它是在另一个 x 中编写的,用于查找服务器 y 的运行状况。 (我没有在服务器y中编写,因为没有接收邮件的功能)

 #!/bin/bash
target=10.9.34.52
count=$( ping -c 5 $target | grep icmp* | wc -l )
if [ $count -eq 0 ]
then
 echo "The Tomcat Dev server GMP_Dev_Tomcat_cvgrhegmpd003 with ip address 10.9.34.52 is DOWN Please check your server ASAP" |  mail -s " Dev Tomcat Server Status" [email protected]
else
   echo "The Tomcat Dev server GMP_Dev_Tomcat_cvgrhegmpd003 with ip address 10.9.34.52 is UP and WORKING"

fi

我没有收到任何警报。我已经添加了每 1 分钟运行一次的shell脚本。crontab -e但是如果我运行脚本./scriptname.sh,我确实会收到邮件(我正在检查服务器何时启动)。

答案1

正如 Joel 提到的,如果在 shell 中运行的 cron 中失败,通常是环境问题。

>> /home/myuser/myscript.log在您的 cron 中,尝试通过附加到 cron 行末尾来记录脚本输出,然后在 cron 运行后读取该文件。

您可能会发现很多类似 的条目-bash: ping: command not found,在这种情况下您需要在脚本中使用绝对路径(即/bin/ping而不是ping)。您可以使用它which [command]来查找命令的绝对路径。

相关内容