linux系统中有一个服务,用来做周期性运行的例行任务,这个服务就是crond服务。执行这项服务的命令
就是crontab命令了。而linux下的任务调度又分为系统任务调度和用户任务调度两个大类。
- 系统任务调度
系统周期性所要执行的工作,比如写缓存数据到硬盘,日志的定期清理一类的,在/etc目录下有一个
crontab的文件,这个就是系统任务调度的配置文件了。来看一下这个配置文件的说明
[root@localhost Desktop]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root For details see man crontabs Example of job definition:
.---------------- minute ( - ) -》表示分钟,可以是从0到59之间的任何整数。
| .------------- hour ( - ) -》表示小时,可以是从0到23之间的任何整数。
| | .---------- day of month ( - ) -》表示日期,可以是从1到31之间的任何整数。
| | | .------- month ( - ) OR jan,feb,mar,apr ... -》表示月份,可以是从1到12之间的任何整数。
| | | | .---- day of week ( - ) (Sunday= or ) OR sun,mon,tue,wed,thu,fri,sat -》表示星期几,从0到7的任何整数,0或7代表星期日。
| | | | |* * * * * user-name command to be executedi -》要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
我们看到,前三行说明了要运行的shell的一些参数,第一行SHELL=/bin/bash代表了要运行哪个shell,linux下默认的就是最常用的bash;
第二行代表要运行的shell脚本或系统命令等地路径;第三行的mailto则代表要将任务的执行信息发送给谁,如果是空则不发送信息,本例中
则是发送给root用户。最后一行的描述请看上图中的描述,或参考下图。
注意,在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“,,,,,”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“-”表示“,,,,”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“-/”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/,如果用在minute字段,表示每十分钟执行一次
- 用户任务调度
该任务调度是指站在了人的角度去执行的事务,如定期的用户数据备份、网络爬虫的定期执行、工作任务的定期邮件提醒等等,用户
都可以通过crontab任务来执行计划任务。所有用户定义的crontab文件都保存在目录/var/spool/cron中,文件名与用户名一致。
。。。继续更新中。。。