指令语法
crontab [ -u user ] file
crontab [ -u user ] { -l | -r | -e }
指令说明
通过crontab 我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常设合周期性的日志分析或数据备份等工作。
使用者权限文件
文件 | 说明 |
/etc/cron.deny | 该文件中所列用户不允许使用crontab命令 |
/etc/cron.allow | 该文件中所列用户允许使用crontab命令 |
/var/spool/cron/ | 所有用户crontab文件存放的目录,以用户名命名 |
指令选项说明含义表
参数名称 | 含义 | 指定示例 |
-l(是字母) | 显示用户crontab文件内容l 为list缩写 | crontab –l |
-e | 进入vi编辑用户crontab文件,e为edit缩写 | crontab -e |
-i | 删除用户crontab文件前确认提示 | crontab -ri |
-r | 从crontab目录中删除用户crontab文件 | crontab -r |
-u user | 指定使用者 | crontab -u ageeklet -l |
指令的使用格式
用户所建立的crontab文件存于/var/spool/cron中,其文件名与用户名一致。 格式共分为七段,前五段为时间设定段,第六段为以哪个用户执行crontab,第七段为所要执行的命令段
格式如下:
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
时间段的含义如表:
段 | 含义 | 取值范围 |
第一段 | 代表分钟 | 0—59 |
第二段 | 代表小时 | 0—23 |
第三段 | 代表日期 | 1—31 |
第四段 | 代表月份 | 1—12 |
第五段 | 代表星期几,0代表星期日 | 0—6 |
实例说明
[root@thinkmoetc]# crontab -l
*/50 * * * * /root/data.sh
在上例中除了数字与英文名称,还使用到了符号"*",这个*号代表每一单位的意思。
如 30 3 * * * 既代表 30分 3点 每日 每月 星期的每天。
时间的指定,可以是单一的数字,或几个数字用逗号来连接。看下例
30 3,12 * * * /root/thinkmobakdata.sh
其中的第二项为 3,12,这代表 第3 以及 12 小时的意思。
30 */6 * * * /root/thinkmobakdata.sh
把第二项改成 */6 这代表每 6 小时,也相当于 6,12,18,24 的作用。
30 8-18/2 * * * /root/thinkmobakdata.sh
把第二项改成 8-18/2 这代表在 8 小时到 18 小时之间每 2 小时,也相当于 8,10,12,14,16,18 的作用。
30 21 * * * /thinkmo/weberber/apache/bin/apachectl restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /thinkmo/weberber/apache/bin/apachectl restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /thinkmo/weberber/apache/bin/apachectl restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /thinkmo/weberber/apache/bin/apachectl restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /thinkmo/weberber/apache/bin/apachectl restart
上面的例子表示每星期六的11 : 00 pm重启apache。
00 */1 * * * /thinkmo/weberber/apache/bin/apachectl restart
每隔一小时整点重启apache
0 11 4 * 1-3 /thinkmo/weberber/apache/bin/apachectl restart
每月的4号与每周一到周三的11点重启apache
0 4 1 1 * /thinkmo/weberber/apache/bin/apachectl restart
一月一号的4点重启apache