定时任务及书写格式

Cron

crontab

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语chronos(χρόνος),原意是时间。

通常,crontab储存的指令被守护进程激活,crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

crontab文件

crontab文件包含送交cron守护进程的一系列作业和指令。每个用户可以拥有自己的crontab文件;同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc或者/etc之下的子目录中,而这个文件只能由系统管理员来修改。

crontab文件的每一行均遵守特定的格式,由空格或tab分隔为数个领域,每个领域可以放置单一或多个数值。

操作符号

在一个区域里填写多个数值的方法:

  • 逗号(',')分开的值,例如:“1,3,4,7,8”
  • 连词符('-')制定值的范围,例如:“1-6”,意思等同于“1,2,3,4,5,6”
  • 星号('*')代表任何可能的值。例如,在“小时域”里的星号等于是“每一个小时”,等等

某些cron程序的扩展版本也支持斜线('/')操作符,用于表示跳过某些给定的数。例如,“*/3”在小时域中等于“0,3,6,9,12,15,18,21”等被3整除的数;

时间设置

# 文件格式说明
#  ——分钟(0 - 59)
# |  ——小时(0 - 23)
# | |  ——日(1 - 31)
# | | |  ——月(1 - 12)
# | | | |  ——星期(0 - 7,星期日=0或7)
# | | | | |
# * * * * * 被执行的命令

注:

  1. 在“星期域”(第五个域),0和7都被视为星期日。
  2. 不很直观的用法:如果日期和星期同时被设定,那么其中的一个条件被满足时,指令便会被执行。请参考下例。
  3. 前5个域称之分时日月周,可方便个人记忆。

从第六个域起,指明要执行的命令。

crontab命令的使用

由于MAC OS自带cron,就无需在安装crond服务了。

样例:

  1. 创建一个新的crontab文件,并在文件内写入cron表达式,例如* * * * * date >> ~/tmp/ls.txt(含义为每隔一分钟将当前日期写入到ls.txt中)

    cd ~/tmp
    touch temp_cron && vim temp_cron
    
  2. 提交刚刚创建的crontab文件

    crontab temp_cron
    
  3. 列出crontab文件,可以看到* * * * * date >> ~/tmp/ls.txt

    crontab -l
    
  4. 查看ls.txt文件,可以看到定时任务生效

    Thu Jul 20 14:59:00 CST 2017
    Thu Jul 20 15:00:00 CST 2017
    Thu Jul 20 15:01:00 CST 2017
    Thu Jul 20 15:02:00 CST 2017
    Thu Jul 20 15:03:00 CST 2017
    Thu Jul 20 15:04:00 CST 2017
    Thu Jul 20 15:05:00 CST 2017

  5. 编辑crontab文件

    crontab -e
    
  6. 删除crontab文件,cron任务停止

    crontab -r
    

Quartz中的cron表达式

格式

格式为{秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)},较crontab的表达式,多了秒和年。

格式详解

字段

字段 有效范围 特殊字符
0~59 , - * /
分钟 0~59 , - * /
小时 0~23 , - * /
日期 0~31 , - * / ? L W C
0~11 , - * /
星期 1~7 或 SUN,MON,TUE,WED,THU,FRI,SAT , - * / ? L # C
年份 1970~2099 , - * /

通配符

通配符 含义
, 用来列出枚举值,例如:在分钟字段里用“5,20”意味着在5和20分每分钟会触发一次
- 指定一个值的范围
* 代表所有可能的值
/ 用来指定数值的增量例如:在分钟字段里用“0/15”表示从第0分钟开始,每15分钟
? 表示不指定值
L(Last) 用在日期表示一个月中的最后一天例如:6L,表示某月的倒数第6天用在星期表示一个月中的最后一个星期x例如:FRIL,表示某月的最后一个星期五
W(Work) 指定离给定日期最近的工作日(周一到周五)例如:在日期字段用“15W”指这个月最接近第15天的工作日,如果这个月第15天是周六,那么触发器将会在这个月第14天即周五触发如果这个月第15天是周日,那么触发器将会在这个月第16天即周一触发
C(Calendar) 指和日历关联后计算过的值例如:在日期 字段用“5C”指在这个月第5天;在星期字段用“1C”指在周日
#(No) 表示该月第几个星期x例如:4#2,表示某月的第二个星期三;6#3,表示某月的第三个星期五

注意:

  • 其中每个元素可以是一个值,一个连续区间,一个间隔时间,一个列表,通配符。
  • 由于"日期"和"星期"这两个元素互斥的,必须要对其中一个设置"?"。

常用例子

  • "0 0 12 * * ?" 每天12点触发
  • "0 0 12,20 * * ?" 每天12点和20点触发
  • "0 0/5 * * * ?" 每隔5分钟触发一次
  • "0 0 10 * * ? 2015" 2015年的每天10点触发
  • "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
  • "0 15 10 15 * ?" 每月15日上午10:15触发
  • "0 15 10 L * ?" 每月最后一日的上午10:15触发

参照

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,348评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,122评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,936评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,427评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,467评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,785评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,931评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,696评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,141评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,483评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,625评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,291评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,892评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,741评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,492评论 2 348

推荐阅读更多精彩内容