大家在 系统的实际使用中,可能会经常碰到让系统在某个特定时间执行某些任务的情况,特别是在服务器中则更为常见,我今天也对这个计划任务做了一个复习,收集了一些关于计划任务的实例,现把相关内容分享出来,同时给自己一个备忘。 费话不多说,下面开始今天的内容
格式说明
在 中,/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=”"
一些常见的实例
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 * * * #每一小时 * 23-7/1 * * * #晚上11点到早上7点之间,每隔一小时 0 11 4 * mon-wed #每月的4号与每周一到周三的11点 0 4 1 jan * #一月一号的4点