目录
原理
- Linux crontab是用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。
- crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
- 新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,可以重启 cron 来马上执行。
案例
- 运行 crontab -e ,可以编辑定时器,然后加入如下命令:
- 0 2 * * * java -jar /springboot-calculate.jar > /logs/calculate.log &
- crontab命令的基本格式如下:
crontab [参数] [文件名]
如果没有指定文件名,则接收键盘上输入的命令,并将它载入到 crontab 。
参数功能对照表如下:
参数 | 功能 |
-u | 指定用户 |
-e | 编辑某个用户的crontab文件内容 |
-l | 显示某个用户的crontab文件内容 |
-r | 删除某用户的crontab文件 |
-i | 删除某用户的crontab文件时需确认 |
以上参数,如果没有使用 -u 指定用户,则默认使用的当前用户。
通过 crontab -e 命令编辑文件内容,具体语法如下:
[分] [小时] [日期] [月] [星期] 具体任务
其中:
- 分,表示多少分钟,范围:0-59
- 小时,表示多少小时,范围:0-23
- 日期,表示具体在哪一天,范围:1-31
- 月,表示多少月,范围:1-12
- 星期,表示多少周,范围:0-7,0和7都代表星期日
还有一些特殊字符,比如:
- * 代表任何时间,比如: *1*** 表示每天凌晨1点执行。
- / 代表每隔多久执行一次,比如: */5 **** 表示每隔5分钟执行一次。
- , 代表支持多个,比如: 10 7,9,12 *** 表示在每天的7、9、12点10分各执行一次。
- - 代表支持一个范围,比如: 10 7-9 *** 表示在每天的7、8、9点10分各执行一次。
优缺点
- 优点:方便修改定时规则,支持一些较复杂的定时规则,通过文件可以统一管理配好的各种定时脚本。
- 缺点:如果定时任务非常多,不太好找,而且必须要求操作系统是 linux ,否则无法执行。