查看linux监听90000端口的程序,linux下自动检测服务端口是否正常监听。

脚本说明:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值