查看已存在的任务
查看crontab 输入命令:cat /etc/crontab
在设定编辑之前都建议列出服务查看一下:crontab -l
语法
**** user_name command to be executed
前面五位是定时执行的时间周期 说明如下:
第一个 * 表示分钟:取值范围 0-59
第二个 * 表示小时:取值范围 0-23
第三个 * 表示天数:取值范围 1-31
第四个 * 表示月份:取值范围 1-12
第五个 * 表示每周:取值范围 0-6
user_name 表示执行定时任务的用户 不指定默认当前用户
command to be executed 表示要执行的脚本语句。
组合用法
使用(-)可以划定范围,如:0 0-3 * * * 脚本 表示每天0-3点整执行脚本
使用(,)可以枚举时间,如: 0,15,30,45 * * * * 脚本 表示每个小时的0分,15分,45分,30分会执行脚本
使用(/)可以指定间隔,如:* */8 * * * 脚本 表示每8小时执行脚本
组合用法,0-20/10 * * * * 脚本 表示在前20分钟内每隔10分钟执行脚本
示例
使用(-)可以划定范围:0 0-3 * * * 脚本 表示每天0-3点整执行脚本
使用(,)可以枚举时间: 0,15,30,45 * * * * 脚本 表示每个小时的0分,15分,45分,30分会执行脚本
使用(/)可以指定间隔:* */8 * * * 脚本 表示每8小时执行脚本
组合用法:0-20/10 * * * * 脚本 表示在前20分钟内每隔10分钟执行脚本
每隔5秒执行一次:*/5 * * * * ?
每隔1分钟执行一次:0 */1 * * * ?
每天23点执行一次:0 0 23 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天23点执行一次:0 0 23 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
在26分、29分、33分执行一次:0 26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
编辑定时任务
# 直接 crontab -e 编辑crontab
# 按 i 进入编辑
# 将上面的cron job复制
# Esc 退出
# :wq 或 shift + zz
# 重启crond
常用命令
crontab -u //设定特定用户的定时服务
crontab -l //列出当前用户定时服务内容
crontab -r //删除当前用户的定时服务
crontab -e //编辑当前用户的定时服务
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
/sbin/service crond status //查看crond状态
你也可以将这个服务在系统启动的时候自动启动:
在/etc/rc.d/rc.local这个脚本的末尾加上:
/sbin/service crond start
查看cron执行日志:cat /var/log/cron
如果最后带^M 则需要设置一下编码
vi crontab.txt :set ff=unix
注意!!!
1.crontab.txt中的内容最后一行需要换行,因为crontab.txt中的内容是通过outputstream写入的
2.java和linux系统级的区别
# Java的Quartz任务(有秒)
0 1 20 * * ? /usr/local/bin/kubectl rollout restart deployment basedata-deployment
# linux系统的crontab(没有秒)
1 20 * * * /usr/local/bin/kubectl rollout restart deployment basedata-deployment
参考自https://www.cnblogs.com/JimmyThomas/p/16348282.html