【Linux---09】Crontab定时调度
Crontab(cron table)是Unix和Unix-like操作系统(如Linux)中用于定时执行任务(cron jobs)的工具。用户可以使用crontab命令创建、编辑、管理他们的定时任务。
Crontab文件是一个包含了一列由cron守护进程执行的命令的文本文件。每一行代表一个定时任务,包含了两部分信息:一部分是定时设定,指定了何时执行该任务;另一部分是要执行的命令。
以下是crontab命令的一些基本用法:
crontab -l
:列出你的当前定时任务列表。crontab -e
:编辑你的定时任务列表。crontab -r
:删除你的定时任务列表。
-
在crontab文件中,每行的格式如下(以5个星号为例):
* * * * * command to be executed - - - - - | | | | | | | | | +----- day of week (0 - 6) (Sunday=0) | | | +------- month (1 - 12) | | +--------- day of month (1 - 31) | +----------- hour (0 - 23) +------------- min (0 - 59)
例如,如果你想要每天午夜12点执行一个shell脚本,你可以这样设置:
# 在每天的0小时0分钟,也就是午夜12点,执行/path/to/your/script.sh这个脚本。 0 0 * * * /path/to/your/script.sh
-
也可以设置步长:通过斜线
/
表示步长。# 每分钟执行一次 /path/to/your/script.sh这个脚本。 */1 * * * * /path/to/your/script.sh
-
实际案例:
[work@xxx code]$ crontab -l # 每天早上5点检查H5分润日志产出情况 0 5 * * * nohup sh /home/work/videopro-hd-jobs/check_result_h5.sh > /dev/null 2>&1 & # 每天早上9点检查NA分润日志产出情况 0 9 * * * nohup sh /home/work/videopro-hd-jobs/check_result_na.sh > /dev/null 2>&1 & # 每天下午14点清理过期文件 0 14 * * * nohup sh /home/work/videopro-hd-jobs/clean_output.sh > /dev/null 2>&1 & 0 21 * * * nohup sh /home/work/videopro-hd-jobs/clean_output_1.sh > /dev/null 2>&1 & # 分润任务例行脚本 */1 * * * * cd /home/work/videopro-hd-jobs/code && sh -x scheduler.sh >> ./log/scheduler.sh.log.`date +"\%Y\%m\%d"` 2>&1