时间:2021-06-08 07:45:05 | 栏目:Linux | 点击:次
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业,本文档不讲cron实现原理,主要讲一下cron的具体使用及简单介绍。
新增调度任务
推荐使用crontab -e命令添加自定义的任务(编辑的是/var/spool/cron下对应用户的cron文件),退出后重启crond进程,虽然官方文档描述为“crond命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。”,但我曾经遇到不重启无法运行任务的情况(也许因为某些系统crontab是读到内存中的,修改完/etc/crontab后并没有马上执行),可以使用如下方式重新启动cron服务或重新加载cron配置
/etc/crontab文件语法如下:
Minute Hour Day Month Dayofweek command
分钟 小时 天 月 天每星期 命令
每个字段代表的含义如下:
• Minute 每个小时的第几分钟执行该任务
• Hour 每天的第几个小时执行该任务
• Day 每月的第几天执行该任务
• Month 每年的第几个月执行该任务
• DayOfWeek 每周的第几天执行该任务
• Command 指定要执行的程序
在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。
同时,cron支持类似正则表达式的书写,支持如下几个特殊符号定义:
• "*"代表取值范围内的数字,
• "/"代表"每",
• "-"代表从某个数字到某个数字,
• ","分开几个离散的数字
举例如下:
cron用户限制
我们可以对不同用户设置限制,比如允许user1使用cron服务,而user2不允许使用cron服务;可以通过编辑如下两个文件实现这个策略:
• /etc/cron.deny 被记录在此的用户不能使用cron任务
• /etc/cron.allow 被记录在此的用户可以使用cron任务
注意:如果两个文件都不存在,则默认所有用户均可以使用cron服务
其它:
• /var/spool/cron/ 该目录下存放所有用户的cron服务
• /var/log/cron 记录cron运行的日志信息