格式:
* * * * * 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
注意:本文归作者所有,未经作者允许,不得转载