1、crond服务管理与访问控制
首先确定服务正在运行
[root@localhost ~]# service crond restart
[root@localhost ~]# chkconfig crond on
访问控制
当系统中有/etc/cron.allow文件时,只有写入此文件的用户可以使用crontab命令,没有写入的用户不能使用crontab命令。同样如果有此文件,/etc/cron.deny文件会被忽略,
/etc/cron.allow文件的优先级更高。
当系统中只有/etc/cron.deny文件是,则写入此文件的用户不能执行crontab命令,没有写入文件的用户可以使用crontab命令。
2、用户的crontab设置
[root@localhost ~]# crontab
注:绑定当前用户的身份,是谁执行的这个命令,那这个命令就归谁管。
选项:
-e:编辑crontab定时任务
-l :查询crontab任务
-r:删除当前用户所有的crontab任务
操作:[root@localhost ~]# crontab -e
# 进入crontab编辑界面。会打开vim编辑你的工作
***** 执行的任务
时间 | 含义 |
45 22 * * * 命令 | 在22点45分执行命令 |
0 17 * * 1 命令 | 每周1的17点0分执行命令 |
0 5 1,15 * * 命令 | 每月1号和15号的凌晨5点0分执行命令 |
40 4 * * 1-5 命令 | 每周一到周五的凌晨4点40分执行命令 |
*/10 4 * * * 命令 | 每天的凌晨4点,每隔10分钟执行一次命令 |
0 0 1,15 * 1 命令 | 每月1号和15号,每周1的0点0分都会执行 |
注:星期几和几号最好不要同时出现,他们的定义都是天。非常容易让管理员混乱。
例子
*/1 * * * * echo 1111 >> /root/test.log
# 每隔一分钟输出 “1111” 到/root/test.log
5 5 * * 2 /sbin/shutdown -r now
# 每周二凌晨5点5分服务器重启
0 5 1,10,15 * * /root/sh/autobak.sh
# 在每个月1号、10号、15号凌晨5点执行这个脚本
3、常用命令
[root@localhost ~]# crontab -l
# 查看root用户的crontab任务
[root@localhost ~]# crontab -r
# 删除root用户所有的定时任务
4、crontab注意事项
1)六个选项都不能为空,必须填写。如果不确定使用 “*” 代替任意时间
2)crontab定时任务,最小有效时间是分钟,最大时间范围时月。像2018年某时执行,3点30分30秒这样的时间都不能识别
3)在定义时间时,日期和星期最好不要在一条定时任务中出现,因为他们都是以天作为单位,非常容易让管理员混乱。
4)在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都是用绝对路径。