You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写可检测服务与页面运行状态的Cronjob定时任务?

Cronjob两类定时检测任务实现方案

一、服务状态检测+自动拉起实现

1. 编写检测脚本

新建脚本文件/opt/scripts/check_service.sh,内容如下,可根据实际需求替换变量:

#!/bin/bash
# 替换为你需要检测的服务名(对应systemctl status的服务名)
TARGET_SERVICE="nginx"
# 可选:日志存储路径,方便排查问题
LOG_PATH="/var/log/check_service.log"

# systemd管理的服务检测逻辑
if ! systemctl is-active --quiet "$TARGET_SERVICE"; then
    echo "$(date "+%Y-%m-%d %H:%M:%S") 检测到${TARGET_SERVICE}未运行,执行拉起操作" >> ${LOG_PATH}
    systemctl start ${TARGET_SERVICE}
fi

如果是没有用systemd管理的进程,将上述检测逻辑替换为以下内容即可:

# 替换为实际进程名(对应ps查询的进程名)
TARGET_PROCESS="your_process_name"
if ! pgrep -x "${TARGET_PROCESS}" > /dev/null; then
    # 这里替换为你的进程启动命令
    /usr/bin/your_process_start_command
fi

2. 配置执行权限和Cron规则

  • 给脚本加执行权限:chmod +x /opt/scripts/check_service.sh
  • 手动执行脚本测试功能是否正常:/bin/bash /opt/scripts/check_service.sh
  • 执行crontab -e添加定时规则,以下配置为每分钟检测一次:
    * * * * * /bin/bash /opt/scripts/check_service.sh

二、HTTP状态码检测+自定义逻辑实现

1. 编写检测脚本

新建脚本文件/opt/scripts/check_http.sh,内容如下:

#!/bin/bash
# 替换为待检测的页面URL
TARGET_URL="https://your-domain.com/test-page"
# 替换为状态码异常时要执行的自定义bash脚本路径
CUSTOM_ACTION="/opt/scripts/your_custom_bash.sh"
# 可选:日志存储路径
LOG_PATH="/var/log/check_http.log"

# 获取HTTP响应状态码,需要跳过证书校验可添加-k参数
STATUS_CODE=$(curl -o /dev/null -s -w "%{http_code}\n" --connect-timeout 10 "${TARGET_URL}")

if [ "${STATUS_CODE}" != "200" ]; then
    echo "$(date "+%Y-%m-%d %H:%M:%S") 检测到${TARGET_URL}状态码异常: ${STATUS_CODE}" >> ${LOG_PATH}
    /bin/bash ${CUSTOM_ACTION}
fi

2. 配置执行权限和Cron规则

  • 给脚本加执行权限:chmod +x /opt/scripts/check_http.sh
  • 手动测试脚本功能:将URL替换为不存在的地址,执行脚本看是否触发自定义逻辑
  • 执行crontab -e添加定时规则,以下配置为每5分钟检测一次:
    */5 * * * * /bin/bash /opt/scripts/check_http.sh

常见运行异常排查点

  • 所有脚本内涉及的命令、文件路径都建议使用绝对路径,可通过which 命令名查询命令的绝对路径,避免Cron执行时因环境变量不全找不到资源
  • 需要root权限的操作(比如启动系统服务),要编辑root用户的crontab:sudo crontab -e
  • 脚本无法正常触发时优先查看日志文件,或者在Cron规则后追加日志输出,比如* * * * * /bin/bash/xxx.sh >> /var/log/cron_test.log 2>&1

内容的提问来源于stack exchange,提问作者user14126119

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 13:54:04