最新消息:觉得本站不错的话 记得收藏哦 博客内某些功能仅供测试 讨论群:135931704 快养不起小站了 各位有闲钱就打赏下把 My Email weicots#gmail.com Please replace # with @

linux crontab 定时任务相关命令

LINX ajiang-tuzi 4590浏览

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-兔子 收集自互联网

转载请注明:(●--●) Hello.My Weicot » linux crontab 定时任务相关命令

蜀ICP备15020253号-1