背景
判断本机80端口是否启动,如果没有启动那么重启一下httpd服务并发送告警邮件

需求

  1. 检测80端口使用nmapp 80127.0.0.1或者netstat -Intplgrep -w 80。
  2. 重启 httpd 服务的命令
  3. 发邮件脚本依然使用mail.py。

设计思路

通过netstat -ntlp查看端口是否开启,然后发邮件给管理员并尝试开启。如果依然无法开启将报错发送给管理员。

  1. #!/bin/bash
  2. m=1182350036@qq.com
  3. while :
  4. do
  5. n=`netstat -ntlp | grep -c '80'`
  6. if [ $n -eq 0 ]; then
  7. systemctl start httpd 2> /tmp/apache.err
  8. echo "80端口已经关闭,正在尝试重启httpd"
  9. pyhon3 mail.py $m "80端口已关闭,已经重启服务"
  10. sleep 2
  11. pn=`pgrep -l httpd|wc -l`
  12. #pn=`netstat -ntlp | grep -c '80'`
  13. if [ $pn -eq 0 ];then
  14. echo "端口无法开启!!"
  15. python3 mail.py $m "http 重启失败 `head -1 /tmp/apache.err`"
  16. else
  17. echo "启动成功!"
  18. fi
  19. fi
  20. done