nginx定时自动巡检的shell脚本

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 表以进行编辑。默认情况下,它通常会在 vinano 编辑器中打开,具体取决于你的系统配置。

  • 第一个星号 (分钟): 0-59

    • 表示任务将在每小时的每一分钟执行。用 * 表示每一分钟都执行。如果是 */5,则表示每5分钟执行一次。
  • 第二个星号 (小时): 0-23

    • 表示任务将在每天的每个小时执行。用 * 表示每个小时都执行。
  • 第三个星号 (日): 1-31

    • 表示任务将在每月的每一天执行。用 * 表示每一天都执行。
  • 第四个星号 (月): 1-12

    • 表示任务将在每年的每一个月执行。用 * 表示每个月都执行。
  • 第五个星号 (星期): 0-6 (0 = 日)

    • 表示任务将在每周的每一天执行。用 * 表示每一天都执行。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值