crontab: 用于设置定时任务,精确到分。
安装crontab:
yum install crontab
crontab服务操作说明
/sbin/service crond start # 启动服务
/sbin/service crond stop # 关闭服务
/sbin/service crond restart # 重启服务
/sbin/service crond reload # 重新载入配置
查看crontab服务状态:
service crond status
crontab服务设置开机启动:
chkconfig -level 35 crond on
查看定时任务列表
crontab -l
编辑定时任务
crontab -e
编写格式
* * * * * [command]
注释以 # 开始,并且必须单独在一行
说明
* * * * *
- - - - -
| | | | |
| | | | +-------day of week(0-7)(Sunday=0 or 7) or sun,mon,tue,wed,thu,fri,sat
| | | +---------month(1-12) or jan,feb,mar,apr...
| | +-----------day of month (1-31)
| +-------------hour (0-23)
+---------------minute(0-59)
例子:
# 每两小时重启一次apache
0 */2 * * * /sbin/service httpd restart
# 每天7点30开启ssh服务
30 7 * * * /sbin/service sshd start
# 每月1号和15号检查/home 磁盘
0 0 1,15 * * fsck /home
# 周一至周五每天9-18点每隔15分钟执行一次ls命令
*/15 9-18 * * 1-5 ls
# 每周一、周三、周五9点运行一次demo.py脚本,并保存日志
* 9 * * MON,WED,FRI nohup /home/user/.virtualenvs/env/bin/python /home/user/demo.py >>/home/user/nohup.log 2>&1 &
标准字段:
1.逗号用于分隔列表。例如,在第五个字段(星期几)中使用MON,WED,FRI表示周一、周三、周五。
2.连字符定义范围。例如,第二个字段 9-18 表示9点到18点,包括9点和18点。
3.除非用反斜杠()转义,否则命令中的百分号(%)会被替换成换行符,第一个百分号后面的所有数据都会作为标准输入发送给命令。
非标准字段:
1.“L”代表“Last”。当在星期几字段中使用的时候,可以指定给定月份的结构,例如“最后一个星期五”(5L
)。在月日字段中,可以指定一个月的最后一天。
2.“day of month”字段可以使用“W”字符。指定最接近给定日期的工作日(星期一-星期五)。例如,15W
, 意思是:“最接近该月15日的工作日。”;所以,如果15号是星期六,触发器在14号星期五触发。如果15日是星期天,触发器在16日星期一触发。如果 15号是星期二,那么它在15号星期二触发。“1W”,如果这个月的第一天是星期六,不会跨到上个月,触发器会在这个月的第三天(也就是星期一)触发。只 有指定一天(不能是范围或列表)的时候,才能指定“W”字符。
3.星期几字段可以使用“#”,后面必须跟一个介于1和5之间的数字。例如,5#3
表示每个月的第三个星期五。
4.在某些实现中,“?”用来代替“”以将月中的某一天或周中的某一天留空。其他cron的实现是替换“?”为cron守护进程的启动时间,例如:?? * * *,如果cron在上午8:25启动,将更新为25 8 * * * *并在每天的这个时间运行,直到再次重新启动。
5.分钟字段设置 */5
表示每5分钟一次
参考来源:
https://www.runoob.com/linux/linux-comm-crontab.html
https://blog.csdn.net/weixin_41594007/article/details/80636390