码迷,mamicode.com
首页 > 系统相关 > 详细

linux下自动检测服务端口是否正常监听。

时间:2015-12-26 23:48:13      阅读:2201      评论:0      收藏:0      [点我收藏+]

标签:服务器 shell脚本 监控


脚本说明:

    1、检查服务器的各端口服务是否正常。

    2、服务端口如果没有正常监听,将自动重启该端口服务,记录日志,并发邮件通知管理员。

    3、让crontab每5分钟自动执行该脚本。

    4、脚本调用了sendEmail来发邮件,请自行谷歌百度装sendEmail。再次提醒是sendEmail 不是sendmail  。。。



[root@node2 ~]# cat monitor.sh

#!/bin/bash

#

# description:  service check

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin


Email(){

  Send=SendEmail@163.com                    #用来发邮件的邮箱,我这里是用的163邮箱

  Pass=SendEmailPass                       #用来发邮件的邮箱密码

  Recv=RecvEmail@qq.com                      #用来接收邮件通知的邮箱,我这里是qq邮箱

  IPADDR=eth0                                      #邮件正文中指明是哪个服务器哪个网卡的IP地址

  /usr/local/bin/sendEmail -f "$Send" -t "$Recv" -s smtp.163.com -xu "$Send" -xp "$Pass" -o message-charset=utf8 -u "$i port service is restarted." -m "$i port service is restarted, Please check the server whether there are abnormal.\n\n\n`ifconfig ${IPADDR}`" &> /dev/null

}


LOG(){

  echo -e "`date +%F_%T`  "$i" service restart...\n`vmstat`\n\n" >> /tmp/monitor.log    #记录日志

}


for i in 22 80 3306 9000; do           #要检查的端口,各端口之间用空格分隔

  netstat -tnl | awk ‘NR>2{print $4}‘ | grep ":$i\>$" &> /dev/null

  if ! [ $? -eq 0 ]; then

    case "$i" in

      22)

        service sshd restart &> /dev/null

        LOG

        Email

        ;;

      80)

        service nginx restart &> /dev/null

        LOG

        Email

        ;;

      3306)

        service mysqld restart &> /dev/null

        LOG

        Email

        ;;

      9000)

        service php-fpm restart &> /dev/null

        LOG

        Email

        ;;

    esac

  fi

done


本文出自 “换个角度看世界” 博客,请务必保留此出处http://netvn.blog.51cto.com/8370732/1728599

linux下自动检测服务端口是否正常监听。

标签:服务器 shell脚本 监控

原文地址:http://netvn.blog.51cto.com/8370732/1728599

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!