运维常用工具crontab
-u user 指定crontab的用户
-l 以标准输出显示执行计划
-r 清除当前的crontab计划任务
-e 编辑crontab
-i 与-r参数同时使用以交互形式提醒用户。
-s 将当前selinux上下文添加到crontab文件的MLS_LEVEL级别
通过查看crontab的配置文件# cat /etc/crontab 获取格式信息
从上述描述可以看出crontab配置文件主要定义了执行crontab的环境(SHELL类型、执行命令的路径、邮件发送的对象)
第一个*表示分钟,范围(0-59)
第二个*表示小时,范围(0-23)
第三个*表示月份中的天数,范围(1-31)
第四个*表示月份,范围(1-12)或者以小写字符表述(jan,feb,mar,apr,may,jun,jul,oct,nov,dec)
第五个*表示星期,范围(0-6)星期天以0或7表示,也可以以字符形式表示(sun,mon,tue,wed,thu,fri,sat)。
以分钟为单位
*/5 * * * *
形式2:
1,6,11,16,21,26,31,36,41,46,51,56 * * * * root 2,7,12,17,22,27,32,37,42,47,52,57 * * * * root 3,8,13,18,23,28,33,38,43,48,53,58 * * * * root 4,9,14,19,24,29,34,39,44,49,54,59 * * * * root
以小时为单位
* */1 * * * * 0-23/3 * * * 每隔3小时 * 0,1,2 * * * 分别在0,1,2点执行
以日为单位
* * */1 * * 每日 * * 1,15,30 * * 分别在0,15,30号运行 * * 1-29 * * 每月1至29号执行
以月为单位
* * * */1 * * * * 1-10 * 1至10月份执行
以周为单位
* * * * 0-6
crontab的另外一种指令形式是指定目录的形式,以这种形式可以直接读取目录中的cron计划。
*/5 * * * * root run-parts /etc/cron.daily
那么通常用户创建的crontab执行计划会放在哪里呢?
# ll /var/spool/cron/ total 12 -rw------- 1 nagios nagios 53 Apr 9 12:38 nagios -rw------- 1 oracle oinstall 53 Dec 15 17:18 oracle -rw------- 1 root root 142 Dec 13 05:15 root
另外cron通过cron.allow或者cron.deny来控制用户使用crontab的权限
系统默认读取/etc/cron.deny中的内容