cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制
crontab参数
-u:这个参数可以让我们去编辑其他人的crontab,如果没有加上这个参数的话就会开启自己的crontab
crontab -u 使用者名称
-l:可以列出crontab的内容
-r:可以移除crontab
-e:可以使用系统预设的编辑器,开启crontab
-i:可以移除crontab,会跳出系统信息让你再次确定是否移除crontab
crontab时间格式说明
minute(分)可以设置0-59分
hour(小时)可以设置0-23小时
day of month(日期)可以设置1-31号
month(月份):可以设置1-12月
day of week(星期):可以设置0-7星期几,其中0和7都代表星期天,或者我们也可以使用名称来表示星期天到星期一,例如sun表示星期天,mon表示星期一等等
crontab时间格式范例
1-3表示123
1-9/2表示13579
crontab范例
每五分钟执行 */5 * * * *
每小时执行 0 * * * *
每天执行 0 0 * * *
每周执行 0 0 * * 0
每月执行 0 0 1 * *
每年执行 0 0 1 1 *
设定cron的权限
/etc/cron.allow
/etc/cron.deny
系统首先判断是否有cron.allow这个文件,如果有这个文件的话,系统会判断这个使用者有没有在cron.allow的名单里面,如果在名单里面的话,就可以使用cron机制。如果这个使用者没有在cron.allow名单里面的话,就不能使用cron机制。
如果系统里面没有cron.allow这个文件的话,系统会再判断是否有cron.deny这个文件,如果有cron.deny这个文件的话,就会判断这个使用者有没有在cron.deny这个名单里面,如果这个使用者在cron.deny名单里面的话,将不能使用cron机制。如果这个使用者没有在cron.deny这个名单里面的话就可以使用cron机制。
如果系统里这两个文件都没有的话,就可以使用cron机制
介绍crontab文件
/etc/crontab
在这个文件里并没有记录系统要执行哪些工作,而是记录了下面四个子目录。
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
这些子目录里存放了一些脚本,到了crontab所指定的时间点,系统就会去执行这些子目录里的脚本。
cron 是由crond系统服务来控制的,是可循环执行的。
用户要新建定时任务,可使用crontab命令。
1.用户设置
/etc/cron.allow可以使用crontab命令的用户写在这个文件中
/etc/cron.deny不允许使用crontab命令的用户写在这个文件中
/etc/cron.allow 比/etc/cron.deny 的优先级高,一般只保留一个文件。
用户使用crontab新建的定时任务会保存在/var/spool/cron中,每个允许使用crontab的用户都有一个文件,用户保存新建的定时任务
cron执行的每项定时任务记录都在/var/log/cron中
2.crontab命令
选项:
-u 只有root才可以使用,为其他用户新建或删除定时任务
-e 编辑定时任务
-l 查看定时任务
-r 删除所有定时任务
3.定时任务数字/符号介绍
分钟 0~59 小时0~23 日期1~31 月份1~12 周 0~7 command
* 代表任何时刻都接受
, 分割时间段 0 3,6 * * * command 表示 每3点6点执行命令
- 代表一段时间 20 8-12 * * * command 表示每8点到12点的20分执行命令
/n n为数字。每隔n单位执行一次 */5 * * * * command 每隔5分钟执行一次。同 0-59/5 * * * * command * */2 * * * command 不是每隔2小时执行一次。正确是 0 */2 * * * command
4.配置文件
个人配置文件在/var/spool/cron/用户名 中,使用crontab -e就是vi这个文件
系统配置文件/etc/crontab转载请注明出处:
未经允许不得转载:lxfamn » cron和crontab命令详解 crontab 每分钟、每小时、每天、每周、每月、每年定时执行 crontab每5分钟执行一次