例行性工作排程--crontab、anacrontab
1、语法: www.zhishiwu.com
[root@www ~]# crontab [-u username] [-l|-e|-r]
选项与参数:
-u :只有 root 才能进行这个任务,亦即帮其他使用者建立/移除 crontab 工作排程;
-e :编辑 crontab 的工作内容
-l :查阅 crontab 的工作内容
-r :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑。
代表意义 分钟 小时 日期 月份 周 指令
数字范围 0-59 0-23 1-31 1-12 0-7(0 或 7 时,都代表‘星期天’)
2、数字中特殊符号含义:
* 任何时间
, 或的意思,举例来说,如果要下达的工作是 3:00 与 6:00 时,就会是: 0 3,6 * * * command
- 时间范围
/n ‘每隔 n 单位间隔’的意思
3、易混淆概念 www.zhishiwu.com
执行文件是:/usr/bin/crontab,每分钟都会去扫描/etc/crontab 与 /var/spool/cron 里面的资料内容。
crontab -e 建立的是用户自己的例行工作,建立后会出现/var/spool/cron/ 里;
vi /etc/crontab 建立的是系统的例行工作,如执行目录下所有可执行脚本,如01 * * * * root run-parts /etc/cron.hourly表示每小时执行一下cron.hourly目录下所有可执行的脚本。
4、安全性控制
/etc/cron.allow:
将可以使用 crontab 的帐号写入其中,若不在这个档案内的使用者则不可使用 crontab;
/etc/cron.deny:
将不可以使用 crontab 的帐号写入其中,若未记录到这个档案当中的使用者,就可以使用 crontab。
都是一行一个帐号,/etc/cron.allow 比 /etc/cron.deny 要优先,而判断上面,这两个档案只选择一个来限制而已,因此,建议你只要保留一个即可, 免得影响自己在设定上面的判断!一般来说,系统预设是保留 /etc/cron.deny , 你可以将不想让他执行 crontab 的那个使用者写入 /etc/cron.deny 当中。
当使用者使用 crontab 这个指令来建立工作排程之后,该项工作就会被纪录到 /var/spool/cron/ 里面去了,而且是以帐号来作为判别的。不要使用 vi 直接编辑该档案, 因为可能由于输入语法错误,会导致无法执行 cron。
5、日志查看:/var/log/cron,里面有多个备份,一周一个,当前的就是cron
6、服务重启:/etc/crontab 之后,可能并不会马上执行, 这个时候请重新启动 crond 这个服务吧!‘/etc/init.d/crond restart’
7、注意事项:
周与日月不可同时并存,不可使用“几月几号且为星期几”的模式工作。
8、anacron--开机后立刻进行 anacron 的动作,他会去侦测停机期间应该进行但是并没有进行的 crontab 任务,并将该任务执行一遍后,anacron 就会自动停止了,这是由于 anacron 会以一天、七天、一个月为期去侦测系统未进行的 crontab 任务。一般默认设置就可以了。
配置文件:/etc/anacrontab,语法再参见别的手册。
要确定 anacron 是否开机时会主动的执行,你可以下达下列指令:[root@www ~]# chkconfig --list anacron