返回列表 发帖

使用Shell脚本监控本机的服务运行状态

笺注:这是在 CentOS6使用mailx(使用新浪邮箱的465端口) 的基础上进行的。


监控本机的服务运行状态的脚本:
[root@localhost ~]# cat check_service.sh
#!/bin/bash

#监控Apache的运行状态:(使用检测进程的方法)
pgrep -l httpd
if [ $? -ne 0 ]; then
echo "Apache is Down." | mail -s "blog.zhuohua.store(47.75.39.177) has Web problem. " 2270168881@qq.com &> /dev/null
echo "Apache is Down."
echo "Send mail."
else
echo "Apache is OK."
fi

echo "----------"

#监控MySQL的运行状态:(使用检测端口的方法)
netstat -anp |grep 3306
if [ $? -ne 0 ]; then
echo "MySQL is Down." | mail -s "blog.zhuohua.store(47.75.39.177) has Database problem. " 2270168881@qq.com &> /dev/null
echo "MySQL is Down."
echo "Send mail."
else
echo "MySQL is OK."
fi



脚本运行的结果:(Apache、MySQL都正常运行时)
[root@localhost ~]# bash check_service.sh
27529 httpd
27530 httpd
27531 httpd
27532 httpd
27533 httpd
27534 httpd
Apache is OK.
----------
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      1903/mysqld         
MySQL is OK.
[root@localhost ~]#



脚本运行的结果:(Apache没有运行,但MySQL正常运行时)
[root@localhost ~]# service httpd stop
stop apache...  done
[root@localhost ~]#
[root@localhost ~]# bash check_service.sh
Apache is Down.
Send mail.

----------
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      1903/mysqld         
MySQL is OK.
[root@localhost ~]#


QQ邮箱收到的告警邮件:(每触发一条告警条件,新浪邮箱就发送一封告警邮件)
图片4.png





###########
###########

Shell脚本结合crontab计划任务,定时重启本机的Apache服务的脚本:
[root@localhost ~]# cat restart_Apache_service.sh
#!/bin/bash

#Shell脚本结合crontab计划任务时,解决找不到命令就得添加以下一条代码
PATH=/sbin:/bin:/usr/sbin:/usr/bin

service httpd restart



设置脚本权限:
[root@localhost ~]# chmod a+x restart_Apache_service.sh
[root@localhost ~]# ll restart_Apache_service.sh
-rwxr-xr-x 1 root root 71 2月   8 13:41 restart_Apache_service.sh


给当前的系统用户添加crontab计划任务,每到13点20分运行一次脚本:
[root@localhost ~]# crontab -e
追加:
20 13 * * * bash /root/restart_Apache_service.sh

查看系统用户root的crontab计划任务:
[root@localhost ~]# crontab -l -u root
20 13 * * * bash /root/restart_Apache_service.sh


笺注:根据crontab计划任务,每到13点20分就会运行一次脚本,即重启一次Apache服务。





相关文章:
进程
Shell基础

使用Shell脚本监控本机的CPU、内存、分区的使用率
本地备份站点目录和数据库+crontab计划任务

返回列表