linux定时工具crontab使用

wylc123 5小时前 ⋅ 5 阅读

格式:

* * * * * command
│ │ │ │ │
│ │ │ │ └── 星期 (0-7, 0和7都是周日)
│ │ │ └──── 月份 (1-12)
│ │ └────── 日期 (1-31)
│ └──────── 小时 (0-23)
└────────── 分钟 (0-59)

常用 命令:

crontab -e          # 编辑当前用户的定时任务
crontab -l          # 列出当前用户的定时任务
crontab -r          # 删除当前用户的所有定时任务
sudo crontab -u root -e   # 编辑root用户的定时任务

应用场景:

查看程序是否在执行,没在执行,启动

程序监控重启脚本check_mblog.sh

#!/bin/bash
# 检查 mblog-latest.jar 是否在运行,如果没有则启动
# 建议放在 crontab 中每分钟执行一次

JAR_NAME="mblog-latest.jar"
START_SCRIPT="./mblog-start.sh"

# 检查进程是否存在(排除 grep 自身和当前脚本)
PID=$(ps -ef | grep "${JAR_NAME}" | grep -v grep | grep -v "$0" | awk '{print $2}')

if [ -z "$PID" ]; then
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] ${JAR_NAME} 未运行,正在启动..."
    cd "$(dirname "$0")" || exit 1
    nohup ${START_SCRIPT}
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] 启动命令已执行"
else
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] ${JAR_NAME} 正在运行,PID: ${PID}"
fi

设置监控脚本每分钟执行一次:

crontab -e

设置格式:

* * * * * /usr/softs/apps/check_mblog.sh > /usr/softs/apps/check_mblog.log 2>&1

 


相关文章推荐

全部评论: 0

    我有话说: