在某一个特定的时间可能会有一些特定的任务,在服务器上比较的常见。最近一直的学习rhel6内容、今天也顺便复习一下crontab任务计划,那就不废话了。

在RHEL6中,/etc/crontab文件有下面的注释
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *  command to be executed


 

特殊的符号说明

上面是英文,我想大家也很明白,下面我们来看一些特殊的符号
"*"代表所有的取值范围内的数字。特别要注意哦!
"/"代表每的意思
"*/5"表示每5个单位
"-"代表从某个数字到某个数字
","分散的数字

 

新手可能分不清用crontab -e编辑和直接编辑/etc/crontab有什么不一样?这是要注意的地方:
1、/etc/crontab这个里面的计划任务是系统中的计划任务
2、crontab -e是用来编辑某个用户的计划任务
3、每条命令执行完毕之后,系统会自动将输出发送邮件给当前系统用户。日积月累,非常的多,甚至会撑爆整个系统。所以每条命令命令后面进行重定向处理是非常必要的: >>/dev/null 2>&1
4、每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。
5、cron启动后每过一份钟都会读取/var/spool/cron/username和/etc/crontab这两个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。
6、在默认情况下,如果cron每执行一次指令后,都会向用户的本地信箱中发送邮件,时间长了则产生数量很多的邮件。那么如何禁止掉呢?可能通过下面的方法来实现
■.将执行命令的信息重定向到
cron_command >/dev/null 2>&1
■.将执行命令的信息重定向到
cron_command &>/dev/null
■.在crontab设置文件中指定发送到得邮件
MAILTO="onebrid@yeah.net"

 

下面是一些常见的例子:

 

一些常见的实例

0 6 * * *  #每天早上6点
0 */2 * * *  #每两个小时
0 23-6/2,8 * * *  #晚上23点到早上6点之间每两个小时,早上八点
0 11 4 * 1-3   #每个月的4号和每个星期的星期一到星期三的早上11点
30 21 * * *    #每晚的21:30
45 4 1,10,22 * *    #每月1、10、22日的4:45
10 1 * * 6,0  #每周六、周日的1 : 10
0,30 18-23 * * *   #每天18:00至23:00之间每隔30分钟
0 23 * * 6  #每星期六的23:00
* */1 * * *  #每一小时

 

 到此结束!