定时任务cron与crontab

 

目录

 

一、Cron

示例

二、Crontab

选项

crontab注意事项:


一、Cron

秒  分  时  日  月  周  年份

{秒数}{分钟} ==> 允许值范围: 0~59 ,不允许为空值,若值不合法,调度器将抛出SchedulerException异常
“*” 代表每隔1秒钟触发;
“,” 代表在指定的秒数触发,比如”0,15,45”代表0秒、15秒和45秒时触发任务
“-“代表在指定的范围内触发,比如”25-45”代表从25秒开始触发到45秒结束触发,每隔1秒触发1次
“/”代表触发步进(step),”/”前面的值代表初始值(““等同”0”),后面的值代表偏移量,比如”0/20”或者”/20”代表从0秒钟开始,每隔20秒钟触发1次,即0秒触发1次,20秒触发1次,40秒触发1次;”5/20”代表5秒触发1次,25秒触发1次,45秒触发1次;”10-45/20”代表在[10,45]内步进20秒命中的时间点触发,即10秒触发1次,30秒触发1次
{小时} ==> 允许值范围: 0~23 ,不允许为空值,若值不合法,调度器将抛出SchedulerException异常,占位符和秒数一样
{日期} ==> 允许值范围: 1~31 ,不允许为空值,若值不合法,调度器将抛出SchedulerException异常
{星期} ==> 允许值范围: 1~7 (SUN-SAT),1代表星期天(一星期的第一天),以此类推,7代表星期六(一星期的最后一天),不允许为空值,若值不合法,调度器将抛出SchedulerException异常
{年份} ==> 允许值范围: 1970~2099 ,允许为空,若值不合法,调度器将抛出SchedulerException异常

注意:除了{日期}和{星期}可以使用”?”来实现互斥,表达无意义的信息之外,其他占位符都要具有具体的时间含义,且依赖关系为:年->月->日期(星期)->小时->分钟->秒数

L ==> 表示last,例如星期中表示7或SAT,月份中表示最后一天31或30,6L表示这个月倒数第6天,FRIL表示这个月的最后一个星期五
W ==> 只能用在月份中,表示最接近指定天的工作日
# ==> 只能用在星期中,表示这个月的第几个周几,例如6#3表示这个月的第3个周五

示例

0  *   *  *  * ? 每1分钟触发一次
30 *   *  *  * ? 每半分钟触发任务
0  0   *  *  * ? 每天每1小时触发一次
30 25  *  *  * ? 每小时的25分30秒触发任务
0  0   10 *  * ? 每天10点触发一次
25 30  2  *  * ? 每天2点30分25秒执行一次
0  *   14 *  * ?  在每天下午2点到下午2:59的每分钟触发
0  30  9  1  * ?  每月1号上午9点半
0  15  10 15 * ? 每月15日上午10:15触发
*/5 *  *  *  * ? 每隔5秒执行一次
0  */1 *  *  * ? 每隔1分钟执行一次
0  0  5-15 * * ? 每天5-15点整点执行
0  0/3 *  *  * ? 从0分钟开始,每隔三分钟执行一次;即0,3,6,9......
0  0   0  1  * ? 每月1号0点0分0秒执行一次
30 10  1  8  8 ? 2024 2024年8月8号1点10分30秒触发任务 
30 10  1  ?  8 * 2024 2024年8月每天1点10分30秒触发任务 
30 10  1  ?  8 SUN 2024 2024年8月每周日1点10分30秒触发任务 
15,30,45 * * * * ? 每15秒,30秒,45秒时触发任务 
15-45 * * * * ? 15到45秒内,每秒都触发任务 
15/5 * * * * ? 每分钟的每15秒开始触发,每隔5秒触发一次 
15-30/5 * * * * ? 每分钟的15秒到30秒之间开始触发,每隔5秒触发一次 
0 0/3 * * * ? 每小时的第0分0秒开始,每三分钟触发一次 
0 15 10 ? * MON-FRI 星期一到星期五的10点15分0秒触发任务 
0 15 10 L * ? 每个月最后一天的10点15分0秒触发任务 
0 15 10 LW * ? 每个月最后一个工作日的10点15分0秒触发任务 
0 15 10 ? * 5L 每个月最后一个星期四的10点15分0秒触发任务 
0 15 10 ? * 3#6 每个月第六周的星期二的10点15分0秒触发任务

二、Crontab

 *     *     *      *     *  

分   时   日   月   周  

时间含义范围
一小时中的第几分钟 (0~59)
一天中的第几个小时 (0~23)
一个月中的第几天   (1~31)
一年中的第几个月     (1~12)
一周中的星期几     (0~7   0和7都代表星期日)

示例

每月的2号、6号、8号    8点-12点  每25分钟  执行
*/25  8-12  2,6,8   *   *
符号含义
*代表任意时间
代表不连续的时间;例:0  6,13,18  *  *  *  表示在每天的6点0分、13点0分、18点0分执行一次
-代表连续的时间范围;例:0  8  *  *  1-6   表示在周一到周六的8点0分执行命令
/代表每隔多久执行一次;例:*/6  *  *  *  *  表示每隔6分钟就执行一次

选项

选项含义
-u用来指定某个用户的crontab的服务
-e 编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。
-l显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。
-r从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。
-i在删除用户的 crontab 文件时,给确认提示。
[root@mjy ~]# cd /opt
[root@mjy opt]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# 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 最小有效时间是分钟,最大有效时间是月
  • 定义时间时,日期和星期最好不要一起出现,因为都是以天为单位,容易混淆、
  • 在定时任务中,最好用相对路径。有时用相对路径会报错
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值