Linux crontab 定时执行任务

jopen 10年前

一 简介

使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。例如最近项目中需要每隔10分钟去查询一下订单中的推送失败的订单并将其重新推送一遍。

二 crontab用法

crontab: usage error: unrecognized option
usage: crontab [-u user] file
crontab [ -u user ] [ -i ] { -e | -l | -r }
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)


crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。

crontab –l : 显示 crontab 文件。

crontab -r : 删除 crontab 文件。

crontab -i : 使用 crontab 命令前提醒用户。


三 crontab文件格式

 {minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}

minute: 区间为 0 – 59

hour: 区间为0 – 23

day-of-month: 区间为0 – 31

month: 区间为1 – 12. 1 是1月. 12是12月.

Day-of-week: 区间为0 – 7. 周日可以是0或7.


四 crontab示例

1. 在 12:01 a.m 运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。 

1 0 * * * /root/bin/backup.sh 

2. 每个工作日(Mon – Fri) 11:59 p.m 都进行备份作业。 

59 11 * * 1,2,3,4,5 /root/bin/backup.sh 

下面例子与上面的例子效果一样: 

59 11 * * 1-5 /root/bin/backup.sh 

3. 每5分钟运行一次命令 

*/5 * * * * /root/bin/check-status.sh 

4. 每个月的第一天 1:10 p.m 运行 

10 13 1 * * /root/bin/full-backup.sh 

5. 每个工作日 11 p.m 运行。 0 23 * * 1-5 /root/bin/incremental-backup.sh