编程需求说明:
监控web服务器运行状态的方式有很多种,最简单的就是监控该服务器是否宕机,客户端是否无法访问.Ping的方式检测虽然可以完成此需求,但是却无法检测到web服务器上对应的服务是否开启或关闭.
所以使用Nmap工具就可以解决此问题,它是一个网络探测及端口监测的工具,不但可以扫描到端口是否打开,还可以监测主机是否存活.
源代码:
#!/bin/bash
#功能描述:使用namp的端口扫描功能监控HTTP端口
#http服务器地址
ip=127.0.0.1
#邮件报警账户
mail_to=root@localhost
nmap -n -sS -p80 127.0.0.11 | grep -q "^80/tcp open"
if [ $? -eq 0 ];then
#给管理员发送邮件汇报状态
echo "$ip 上的HTTP服务正在运行" | mail -s http_status_ok $mail_to
else
echo "$ip 上的HTTP服务状态异常,请及时处理" | mail -s http_status_error $mail_to
fi
脚本运行结果
状态正常情况下
/check_http_nmap.sh
您在 /var/spool/mail/root 中有新邮件
127.0.0.1 上的HTTP服务正在运行
状态异常情况下
关闭httpd,模拟状态异常
systemctl stop httpd
/check_http_nmap.sh
127.0.0.1 上的HTTP服务状态异常,请及时处理
网友评论