Practice make perfect

监控服务端程序

监控服务端程序

简单编写脚本监控服务端程序,使用cron 建立定时任务执行

大多数进程运行时都在 /run 目录下一个 PID 文件(进程ID), 例如Apache Web服务器(httpd)的PID文件:/run/httpd/httpd.pid

创建一个脚本,命名为 apache.sh,放在 root 账户主目录中,文件权限改为 750(rwxr -x ---),使其他用户无法执行甚至读取这个文件

$ sudo chmod 750 apache.sh

用变量 FILE 标识文件位置,Apache Web服务器宕机时尝试重启,如果30s内 三次重启失败后向管理员团队发送邮件报警。

#!/bin/bash

FILE=/run/httpd/httpd.pid

if ! [ -f "$FILE" ]; then
systemctl start httpd.service
fi
sleep 10s
if ! [ -f "$FILE" ]; then
systemctl start httpd.service
fi
sleep 10s
if ! [ -f "$FILE" ]; then
systemctl start httpd.service
fi
sleep 10s
if ! [ -f "$FILE" ]; then
mail -s 'Apache is down' sysadmins@mydomain.com <<< 'Apache is down on SERVER1 and cannot be restarted'
fi

之后启动定时任务

$ sudo crontab -e

每五分钟运行一次脚本

*/5 * * * * /root/apache.sh

关于 crontab 设定的时间可以参考该网站 crontab guru

参考

Linux监视和警报简介

使用cron自动化Linux系统任务

评论