1.创建脚本
我在这里给大家演示就随便创建个文件名 如:
vim /nginxXJ.sh
#!/bin/bash
# 检查 Nginx 是否正在运行
nginx=$( ps -ef | grep nginx | grep -v grep | grep root | awk '{print $2}')
if [ -z "$nginx" ]; then
echo "====Nginx 没有启动,尝试重启中,请稍等...===="# 尝试重启 Nginx
sudo systemctl restart nginx# 检查 Nginx 是否成功重启
nginx=$( ps -ef | grep nginx | grep -v grep | grep root | awk '{print $2}')if [ -n "$nginx" ]; then
echo "=======Nginx 启动成功...=========="
else
echo "======无法重启 Nginx...========="
fi
else
echo "=====Nginx 已启动...====="
fi
nginx=$( ps -ef | grep nginx | grep -v grep | grep root | awk '{print $2}')
变量的形式用nginx来代替以下代码 | 用来分割多条代码
ps -ef
列出所有进程,并通过grep
查找与 Nginx 相关的进程。grep -v grep
用于排除grep
本身的进程。grep root
只查找由 root 用户启动的 Nginx 进程。awk '{print $2}'
提取进程 ID (PID)。
2.设置定时巡检
crontab -e
30 8 * * 1 /nginxXJ.sh
解释
30
: 分钟字段,表示在每小时的第 30 分钟。8
: 小时字段,表示在上午 8 点。*
: 日期字段,表示每个月的每一天。*
: 月份字段,表示每年的每个月。1
: 星期字段,表示每周的第一天(星期一)。
/nginxXJ.sh 为路径文件
运行 crontab -e
会打开当前用户的 cron
表以进行编辑。默认情况下,它通常会在 vi
或 nano
编辑器中打开,具体取决于你的系统配置。
-
第一个星号 (分钟):
0-59
- 表示任务将在每小时的每一分钟执行。用
*
表示每一分钟都执行。如果是*/5
,则表示每5分钟执行一次。
- 表示任务将在每小时的每一分钟执行。用
-
第二个星号 (小时):
0-23
- 表示任务将在每天的每个小时执行。用
*
表示每个小时都执行。
- 表示任务将在每天的每个小时执行。用
-
第三个星号 (日):
1-31
- 表示任务将在每月的每一天执行。用
*
表示每一天都执行。
- 表示任务将在每月的每一天执行。用
-
第四个星号 (月):
1-12
- 表示任务将在每年的每一个月执行。用
*
表示每个月都执行。
- 表示任务将在每年的每一个月执行。用
-
第五个星号 (星期):
0-6
(0 = 日)- 表示任务将在每周的每一天执行。用
*
表示每一天都执行。
- 表示任务将在每周的每一天执行。用