首页 > 代码库 > centos crontab 定时任务

centos crontab 定时任务

编写一个测试脚本

#!/bin/bash# 测试A=123echo "hello world: $A"echo "program name:$0"echo "all pram: $*"echo "user:$UID"echo "cur dis:$PWD"if(($A>100)); thenecho "num big then 100"fiif [ ! -d ~/temp/20140515 ];thenmkdir -p ~/temp/20140515elseecho “This DIR is exist,Please exit …..”fi#sleep 2;BAKDIR=/data/backup/mysql/$(date +%Y%m%d)ARRAY=(test1 test2 test3)echo "aaray is ${ARRAY[0]}"echo "$BAKDIR"ls >>/home/wilson/temp/ab.log~~

设置配置文件

/etc/crontab 
SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root# For details see man 4 crontabs# 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# |  |  |  |  |# *  *  *  *  * user-name  command to be executed*/1  * * * * wilson /home/wilson/temp/test.sh
* * * * * command path  // 前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,即命令字段,其中包括了crontab调度执行的命令。 各个字段之间用spaces和tabs分割。

调度命令的规则:

字段名称说明取值范围
分钟每小时的第几分钟执行0-59
小时  每日的第几个小时执行0-23
日期每月的第几天执行1-31
月历每年的第几月执行1-12
星期每周的第几天执行0-6
命令名称欲执行的命令及参数 

crontab命令中的一些常用特殊符号:

符号 说明
*表示任何时刻
,表示分割
表示一个段,如第二段里: 1-5,就表示1到5点
/n表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.

 

下面给出一些crontab命令的实例:

00 8,12,16 * * * /data/app/scripts/monitor/df.sh30 2 * * * /data/app/scripts/hotbackup/hot_database_backup.sh10 8,12,16 * * * /data/app/scripts/monitor/check_ind_unusable.sh10 8,12,16 * * * /data/app/scripts/monitor/check_maxfilesize.sh10 8,12,16 * * * /data/app/scripts/monitor/check_objectsize.sh 43 21 * * *  每天的21:43 执行15 05 * * *    每天的05:15 执行0 17 * * * 每天的17:00 执行0 17 * * 1 每周一的 17:00 执行0,10 17 * * 0,2,3 每周日,周二,周三的 17:00和 17:10 执行0-10 17 1 * * 毎月1日从 17:00到7:10 毎隔1分钟 执行0 0 1,15 * 1 毎月1日和 15日和 一日的 0:00 执行42 4 1 * *     毎月1日的 4:42分 执行0 21 * * 1-6   周一到周六 21:00 执行0,10,20,30,40,50 * * * * 每隔10分 执行*/10 * * * *        每隔10分 执行* 1 * * *         从1:0到1:59 每隔1分钟 执行0 1 * * *         1:00 执行0 */1 * * *        毎时0分 每隔1小时 执行0 * * * *         毎时0分 每隔1小时 执行2 8-20/3 * * *      8:02,11:02,14:02,17:02,20:02 执行30 5 1,15 * *       1日 和 15日的 5:30 执行

 

centos crontab 定时任务