crontab与cron语法规则
YuWei Wu 11/17/2020 Java
# crontab语法规则
# 一、项目语法规则
crontab表达式是基于cron表达式组成的cron表,主要用途为Linux系统下shell脚本实现定时任务。
- 位数(共有六位)
代表意义 | 分钟 | 小时 | 日期 | 月份 | 周 | 命令 |
---|---|---|---|---|---|---|
数值范围 | 0-59 | 0-23 | 1-31 | 1-12 | 0-7 | 要执行的命令 |
- 符号
特殊字符 | 代表意义 |
---|---|
* | 每时每刻 |
, | 或者 |
- | 时间段 |
/n | 每隔n个单位进行一次 |
# 二、例子
每分钟执行一次规则
- 每一分钟执行: */1 * * * * command
每天8到12点之间20分时执行一次任务
20 8-12 * * * command
每月10号及20号的3:30执行一次命令
- 30 3 10,30 * * command
每隔10天6:30执行一次命令
- 30 6 */10 * * command
# 三、使用
查看有哪些在运行的crontab命令 crontab -l
编辑crontab任务 crontab -e
例如55 23 * * * /home/yuwei/startBash.sh
注意:要给被执行文件执行权限chmod +x startBash.sh
# 四、串行执行脚本操作
0 12 * * * /path/to/script1.sh && /path/to/script2.sh
执行第一个脚本后再执行第二个脚本,可以使用 && 运算符将两个脚本命令串联起来。这样设置后,只有当第一个脚本成功执行并退出时,才会执行第二个脚本。如果第一个脚本执行失败或者没有退出,第二个脚本将不会执行。&&前后需要有空格。
# Cron表达式
与CronTab表达式不同,Cron表达式主要应用与SpringBoot定时任务的设置上,一共有七位。少了command位,增加了秒,年位,其余用法与Cron表达式一致。
注意: SpringBoot 只能解析六位Cron表达式,无法完成年的定时任务,因此解析cron表达式的时候可以先判断是否可以解析。
秒 | 分钟 | 小时 | 日期 | 月份 | 周 | 年 |
---|---|---|---|---|---|---|
0-59 | 0-59 | 0-23 | 1-31 | 1-12 | 0-7 | 年份 |