Linux 任务计划

crontab

crontab 命令从输入设备读取指令,并将其存放于 crontab 文件中,以供之后读取和执行。通常,crontab 储存的指令被守护进程激活,crond 为其守护进程,crond 常常在后台运行,每一分钟会检查一次是否有预定的作业需要执行。

crontab 格式

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

crontab 使用

# 部署
# 每个用户使用 crontab -e 添加计划任务,都会在 /var/spool/cron/crontabs 中添加一个该用户自己的任务文档,这样目的是为了隔离。
crontab -e

# 每隔2分钟输出时间到文件,其它的在例子中
*/2 * * * * echo `date` >> $HOME>test.txt


# 查看添加的任务
crontab -l

# 删除任务
crontab -r

# 查看是否在后台成功启动
ps aux | grep cron

crontab 目录

/etc/cron.daily,目录下的脚本会每天执行一次,在每天的 6 点 25 分时运行;
/etc/cron.hourly,目录下的脚本会每个小时执行一次,在每小时的 17 分钟时运行;
/etc/cron.monthly,目录下的脚本会每月执行一次,在每月 1 号的 6 点 52 分时运行;
/etc/cron.weekly,目录下的脚本会每周执行一次,在每周第七天的 6 点 47 分时运行;

例子

30 21 * * * command       #每晚的21:30
45 4 1,10,22 * * command  #每月1、10、22日的4 : 45
10 1 * * 6,0 command      #每周六、周日的1 : 10重启apache
0,30 18-23 * * * command  #每天18 : 00至23 : 00之间每隔30分钟
0 23 * * 6 command        #每星期六的11 : 00 pm
* */1 * * * command       #每一小时重启apache
* 23-7/1 * * * command    #晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed command  #每月的4号与每周一到周三的11点重启apache
0 4 1 jan * command       #一月一号的4点重启apache

时间计算工具 https://tool.lu/crontab/

原文地址:https://www.cnblogs.com/linzhenyu/p/13159004.html