1. crontab文件格式:
* * * * * command
minute hour day month week command
分 时 天 月 星期 命令
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
2.
特殊字符:
星号(*):代表每的意思,例如month字段如果是星号,则表示每月都执行该命令操作。
逗号(,):表示分隔时段的意思,例如,“1,3,5,7,9”。
中杠(-):表示一个时间范围,例如“2-6”表示“2,3,4,5,6”。
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
3.实例
运行crontab –e 编写一条定时任务 */5 * * * * /home/test.sh 在每5分钟执行一次test.sh脚本。
##每月每天凌晨3点30分和中午12点20分执行test.sh脚本
30 3,12 * * * /home/test.sh
##每月每天每隔6小时的每30分钟执行test.sh脚本
30 */6 * * * /home/test.sh
##每月每天早上8点到下午18点每隔2小时的每30分钟执行test.sh脚本
30 8-18/2 * * * /etc/init.d/network restart
##每月每天晚上21点30分执行test.sh脚本
30 21 * * * /etc/init.d/network restart
##每月1号、10号、22号凌晨4点45分执行test.sh脚本
45 4 1,10,22 * * /etc/init.d/network restart
##8月份周一、周日凌晨1点10分执行test.sh脚本
10 1 * 8 6,0 /etc/init.d/network restart
##每月每天每小时整点执行test.sh脚本
00 */1 * * * /etc/init.d/network restart
crontab文件的一些例子:
1)30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。
2)45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
3)10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
4)0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。最后一次的任务执行时间为23:30
5)0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。
6)* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache(错误的)
*代表每分钟就执行一次,上面的语句的意思为每隔一小时的每分钟都在执行重启apache
*/60 * * * * #每60分钟即每小时执行一次
*/105 * * * * #每105分钟执行一次
7)* 23,00-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
进入/var/spool/cron/目录,这个目录下的文件都是以用户命名的,文件内容就是用户设置的定时任务。
使用crontab -e 命令添加的任务,都是编写在该文件下。也可跟进用户名自行创建一个定时任务文件,这样不会在crontab -e里面显示,只会在改目录下显示
4.******定时任务书写要领******
要领1:定时任务要加注释
要领2:定时任务命令或脚本结尾加 &>/dev/null 或 >/dev/null 2>&1 或 1>/dev/null 2>/dev/null
要领3:定时任务执行shell脚本前加/bin/sh,定时任务执行shell脚本不必添加执行权限
要领4:定时任务命令或程序尽量写到脚本里,定时任务只要执行脚本即可
注意操作步骤:
(1)、命令行执行
(2)、编写脚本
(3)、测试脚本
(4)、设置定时任务
要领5:生产任务程序不要随意打印输出信息
要领6:定时任务执行的脚本要规范路径 (例如 /server/script)
要领7:配置定时任务要规范操作过程
要领8:定时任务执行特殊的字符需要进行转义,否则会报错,例如 百分号% 转义 \%
要领9:定时任务脚本中如果涉及使用到环境变量,必须在脚本中重新定义,不然,定时任务识别不了
crontab定时在线校验
crontab在线校验工具地址crontab执行时间计算 – 在线工具