CRON定时任务
语法规则格式
代表意义 | 分钟 | 小时 | 日期 | 月份 | 周 | 命令 |
---|---|---|---|---|---|---|
数字范围 | 0~59 | 0~23 | 1~31 | 1~12 | 0~7 | 需要执行的命令 |
周的数字为 0 或 7 时,都代表“星期天”的意思。
另外,还有一些辅助的字符,大概有下面这些:
特殊字符 | 代表意义 |
---|---|
*(星号) | 代表任何时刻都接受的意思。举例来说,范例一内那个日、月、周都是*,就代表着不论何月、何日的礼拜几的12:00都执行后续命令的意思。 |
,(逗号) | 代表分隔时段的意思。举例来说,如果要执行的工作是3:00与6:00时,就会是:0 3,6 * * * command时间还是有五列,不过第二列是 3,6 ,代表3与6都适用 |
-(减号) | 代表一段时间范围内,举例来说,8点到12点之间的每小时的20分都进行一项工作:20 8-12 * * * command仔细看到第二列变成8-12.代表 8,9,10,11,12 都适用的意思 |
/n(斜线) | 那个n代表数字,即是每隔n单位间隔的意思,例如每五分钟进行一次,则:/5 * * * * command用与/5来搭配,也可以写成0-59/5,意思相同 |
常用命令
crontab –e //修改 crontab 文件,如果文件不存在会自动创建。
crontab –l //显示 crontab 文件。
crontab -r //删除 crontab 文件。
crontab -ir //删除 crontab 文件前提醒用户。
service crond status //查看crontab服务状态
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
示例
每分钟定时执行一次规则:
每1分钟执行: */1 * * * 或者 * * * * 每5分钟执行: */5 * * * *
每小时定时执行一次规则:
每小时执行: 0 * * * *或者0 */1 * * * 每天上午7点执行:0 7 * * * 每天上午7点10分执行:10 7 * * *
每天定时执行一次规则:
每天执行 0 0 * * *
每周定时执行一次规则:
每周执行 0 0 * * 0
每月定时执行一次规则:
每月执行 0 0 1 * *
每年定时执行一次规则:
每年执行 0 0 1 1 *
其他例子
5 * * * * 指定每小时的第5分钟执行一次ls命令
30 5 * * * ls 指定每天的 5:30 执行ls命令
30 7 8 * * ls 指定每月8号的7:30分执行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令
30 6 * * 0 ls 指定每星期日的6:30执行ls命令注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令注:“,”用来连接多个不连续的时段
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令注:“-”用来连接连续的时段
*/15 * * * * ls 每15分钟执行一次ls命令 即每个小时的第0 15 30 45 60分钟执行ls命令
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令即每月的1、11、21、31日是的6:30执行一次ls命令
crontab定时任务不执行的原因
查看定时任务列表:
crontab -l
查看定时任务执行日志:
tail -f -n 1000 /var/log/cron
整个cron的操作步骤如下
1>编辑了.sh脚本,并保存,记录.sh文件所在路径【一定确保script.sh脚本可用,可以尝试在编辑完成script.sh文件后,直接./script.sh 执行脚本文件,查看是否可以正常执行】
2>查看并设置cron为自启动
3>查看并启动cron服务,使状态为running
4>编辑并查看cron服务,注意路径和定时格式,确保cron服务编辑成功
5>最后在编辑完成cron服务后,重新加载或重启cron服务,确保cron服务状态是running的
6>最后可以通过查看cron执行日志,确保cron是否执行
7>如果cron任务不执行,确保linux服务器系统 时间 和时区 是否正常
cron任务不执行,问题排查
如上,已经确保 第五点中所有 步骤都正确执行了。但是cron定时任务一直没有执行。