1、crontab相关命令
功能说明:设置计时器。 语 法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr] 补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使用计时器的功能。 配置文件格式:Minute Hour Day Month DayOFWeek Command 参 数: -e 编辑该用户的计时器设置。 -l 列出该用户的计时器设置。 -r 删除该用户的计时器设置。 -u<用户名称> 指定要设定计时器的用户名称。
2、crontab 配置文件格式
基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令 # — M: 分钟 (0 - 59) # | — H:小时 (0 - 23) # | | — D:一个月的哪一天 (1 - 31) # | | | — M: 一年中的哪个月 (1 - 12) # | | | | — 星期几(0 - 7) (星期日 = 0或7) # | | | | | # * * * * * 被执行的命令
crontab文件的一些例子:
#每晚的21:30 重启apache 30 21 * * * /usr/local/etc/rc.d/lighttpd restart #每月1、10、22日的4 : 45重启apache 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart #每周六、周日的1 : 10重启apache 10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart #每天18 : 00至23 : 00之间每隔30分钟重启apache 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart #每星期六的11 : 00 pm重启apache 0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart #晚上11点到早上7点之间,每隔一小时重启apache * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart #每一小时重启apache * */1 * * * /usr/local/etc/rc.d/lighttpd restart #每月的4号与每周一到周三的11点重启apache 0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart #一月一号的4点重启apache 0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart #每半小时同步一下时间 */30 * * * * /usr/sbin/ntpdate 210.72.145.44 #下面的计划任务会在每个小时的0分时运行(就是每小时执行一次) 0 * * * * [command] #下面依旧是一个每小时运行一次的计划任务。不过是在每个小时的一刻钟时运行的(1:15,2:15 ...以此类推) 15 * * * * [command] #下面的计划任务每天执行一次,在2:30分 30 2 * * * [command] #下面的计划任务是在每个月2号的午夜执行(比如:2013-01-02 00:00, 2013-02-02 00:00 ...以此类推) 0 0 2 * * [command] #下面的计划任务会在每周一的每个小时0分钟时执行一次 0 * * * 1 [command] 3下面的会每小时运行3次,在0分,10分,和20分时 0,10,20 * * * * [command] #下面是用除号 / 表示每多少运行一次。本例是每5分钟运行一次 */5 * * * * [command] #还可以用 - 表示一个范围,如下表示5到10点的每个整点运行一次 0 5-10 * * * [command] #每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 0 11 4 * 1-3 [command] #晚上11点到早上8点之间每两个小时,早上八点 0 23-7/2,8 * * * [command] #另外还有一个特殊的时间关键字“@reboot”,就是每次重启服务器时运行计划任务 @reboot [command]
3、其他任务调度
cron默认配置了调度任务,分别为:hourly、daily、weekly、mouthly,默认配置文件为/etc/anacrontab
将需要执行的脚本放到相应的目录下即可,目录分别为:
/etc/cron.hourly /etc/cron.daily /etc/cron.weekly /ect/cron.mouthly
4.使用PHP解析器
CGI脚本默认是可以执行的,但是php脚本不行,他们需要用php解析器来运行,这就是我们要把php解析器的路径放到php脚本前的原因。 注释使用#字符。例如: # This cron job does something very important 10 * * * * /usr/bin/php /www/virtual/username/cron.php > /dev/null 2>&1 设定E-mail MAILTO="1050653098@qq.com" # This cron job does something very important 10 * * * * /usr/bin/php /www/virtual/username/cron.php > /dev/null 2>&1 有时候php解析器可能在这里”/usr/local/bin/php”。我们可以用下面的命令找到正确的路径: 在终端中输入: which php 系统反馈: /usr/bin/php
5检查执行情况
针对Linux系统的查询方法(含Redhat、SUSE) 看 /var/log/cron这个文件就可以, 可以用tail -f /var/log/cron观察
本文有ajiang-兔子 收集自互联网