步骤 1:编写监控脚本
-
创建一个新的脚本文件:
bashnano /usr/local/bin/nginx_monitor.sh
-
在脚本中添加以下内容:
bash#!/bin/bash
# 检查 NGINX 是否正在运行
if ! pgrep -x "nginx" > /dev/null
then
echo "NGINX is not running, starting it..."
# 启动 NGINX
sudo systemctl start nginx
else
echo "NGINX is running."
fi -
保存并关闭编辑器。
-
使脚本可执行:
bashsudo chmod +x /usr/local/bin/nginx_monitor.sh
步骤 2:设置定时任务
-
打开当前用户的
crontab
:bashcrontab -e
-
添加以下行来设置定时任务,例如每分钟检查一次 NGINX:
cron* * * * * /usr/local/bin/nginx_monitor.sh
-
保存并退出编辑器。
脚本解释:
pgrep -x "nginx"
:查找所有包含 “nginx” 的进程。如果 NGINX 正在运行,pgrep
将返回其进程 ID。> /dev/null
:将pgrep
的输出重定向到/dev/null
,这样就不会在日志中显示进程 ID。sudo systemctl start nginx
:如果 NGINX 没有运行,使用systemctl
启动 NGINX。
注意:
- 确保
/usr/local/bin/nginx_monitor.sh
脚本的路径正确,并且脚本具有执行权限。 - 根据你的系统配置,可能需要调整
sudo
权限或使用其他方式来启动 NGINX。 - 定时任务的频率可以根据需要调整,例如每 5 分钟或每 10 分钟检查一次。