1 crontab介绍
crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。
- /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
- /etc/crontab 这个文件负责调度各种管理和维护任务。
- /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
- 我们可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。
2 crontab的使用
crontab [-u username] //省略用户表表示操作当前用户的crontab
-e (编辑工作表)
-l (列出工作表里的命令)
-r (删除工作作)
crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有
- 取值范围内的所有数字
- / 每过多少个数字
- 从X到Z
- ,散列数字
3 常用操作
3.1 安装命令
yum install vixie-cron
yum install crontabs
3.2 操作命令
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
3.3 crontab
crontab任务配置基本格式:
* * * * * command
分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天) 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
- 星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。
- 整数间的短线(-)指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4。
- 逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。
- 正斜线(/)可以用来指定间隔频率。在范围后加上 / 意味着在范围内可以跳过 integer。譬如,0-59/2
可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务。 - 开头为井号(#)的行是注释,不会被处理。
4 实例
- 实例1:每1分钟执行一次test
* * * * * test
- 实例2:每小时的第3和第15分钟执行
3,15 * * * * test
- 实例3:在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * test
- 实例4:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * test
- 实例5:每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 test
- 实例6:每晚的21:30重启tst
30 21 * * * /etc/init.d/tst restart
- 实例7:每月1、10、22日的4 : 45重启tst
45 4 1,10,22 * * /etc/init.d/tst restart
- 实例8:每周六、周日的1 : 10重启tst
10 1 * * 6,0 /etc/init.d/tst restart
- 实例9:每天18 : 00至23 : 00之间每隔30分钟重启tst
0,30 18-23 * * * /etc/init.d/tst restart
- 实例10:每星期六的晚上11 : 00 pm重启tst
0 23 * * 6 /etc/init.d/tst restart
- 实例11:每一小时重启tst
0 */1 * * * /etc/init.d/tst restart
- 实例12:晚上11点到早上7点之间,每隔一小时重启tst
0 23-7/1 * * * /etc/init.d/tst restart
- 实例13:每天晚上1点调用/home/test.sh
0 1 * * * /home/test.sh
- 实例14:每10钟调用一次/home/test.sh
*/10 * * * * /home/test.sh
- 实例15:上面的例子表示每晚的21:30重启apache。
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
- 实例16:上面的例子表示每月1、10、22日的4 : 45重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
- 实例17:上面的例子表示每周六、周日的1 : 10重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
- 实例18:上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
- 实例19:上面的例子表示每星期六的11 : 00 pm重启apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
- 实例20:每一小时重启apache
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
- 实例21:晚上11点到早上7点之间,每隔一小时重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
- 实例22:每月的4号与每周一到周三的11点重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
- 实例23:一月一号的4点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
- 实例24:每半小时同步一下时间
*/30 * * * * /usr/sbin/ntpdate 210.72.145.44
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/79892.html