Linux Crontab命令

来源:互联网 发布:淘宝网酒类 编辑:程序博客网 时间:2024/06/02 02:13


安装crontab:

yum install crontabs

基础的cron服务控制命令:

代码  收藏代码
  1. /sbin/service crond start //启动服务  
  2.   
  3. /sbin/service crond stop //关闭服务  
  4.   
  5. /sbin/service crond restart //重启服务  
  6.   
  7. /sbin/service crond reload //重新载入配置  

查看crontab服务状态:service crond status

手动启动crontab服务:service crond start

查看crontab服务是否已设置为开机启动,执行命令:ntsysv

加入开机自动启动: chkconfig --level 35 crond on  

如果想进一步了解 chkconfig --level命令, http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796873.html 讲解的更详细些

crontab命令介绍

代码  收藏代码
  1. 功能说明:设置计时器。  
  2.    
  3.    
  4.    
  5. 语  法:crontab [-u <用户名称>][配置文件] 或crontab [-u <用户名称>][-elr]  
  6.    
  7.    
  8.    
  9. 补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下:  
  10.    
  11. Minute Hour Day Month DayOFWeek Command  
  12.    
  13.    
  14.    
  15. 参  数:  
  16.    
  17. -e  编辑该用户的计时器设置。  
  18.    
  19. -l  列出该用户的计时器设置。  
  20.    
  21. -r  删除该用户的计时器设置。  
  22.    
  23. -u<用户名称>  指定要设定计时器的用户名称。  

 

 

 

 

crontab 格式

代码  收藏代码
  1. 基本格式:  
  2.    
  3. * * * * *  command  
  4.    
  5. 分 时 日 月 周  命令  
  6.    
  7.    
  8.    
  9. 第1列表示分钟1~59 每分钟用*或者*/1表示  
  10.    
  11. 第2列表示小时1~23(0表示0点)  
  12.    
  13. 第3列表示日期1~31  
  14.    
  15. 第4列 表示月份1~12  
  16.    
  17. 第5列标识号星期0~6(0表示星期天)  
  18.    
  19. 第6列要运行的命令  
  20.    
  21.    
  22.    
  23. # Use the hash sign to prefix a comment  
  24.    
  25. # +—————- minute (0 – 59)  
  26.    
  27. # | +————- hour (0 – 23)  
  28.    
  29. # | | +———- day of month (1 – 31)  
  30.    
  31. # | | | +——- month (1 – 12)  
  32.    
  33. # | | | | +—- day of week (0 – 7) (Sunday=0 or 7)  
  34.    
  35. # | | | | |  
  36.    
  37. # * * * * * command to be executed  

 

crontab文件的一些例子:

 

代码  收藏代码
  1. 30 21 * * * /etc/init.d/nginx restart  
  2.    
  3. 每晚的21:30重启nginx。  
  4.    
  5.    
  6.    
  7. 45 4 1,10,22 * * /etc/init.d/nginx restart  
  8.    
  9. 每月11022日的4 : 45重启nginx。  
  10.    
  11.    
  12.    
  13. 10 1 * * 6,0 /etc/init.d/nginx restart  
  14.    
  15. 每周六、周日的1 : 10重启nginx。  
  16.    
  17.    
  18.    
  19. 0,30 18-23 * * * /etc/init.d/nginx restart  
  20.    
  21. 每天18 : 0023 : 00之间每隔30分钟重启nginx。  
  22.    
  23.    
  24.    
  25. 0 23 * * 6 /etc/init.d/nginx restart  
  26.    
  27. 每星期六的11 : 00 pm重启nginx。  
  28.    
  29.    
  30.    
  31. * */1 * * * /etc/init.d/nginx restart  
  32.    
  33. 每一小时重启nginx  
  34.    
  35.    
  36.    
  37. 23-7/1 * * * /etc/init.d/nginx restart  
  38.    
  39. 晚上11点到早上7点之间,每 隔一小时重启nginx  
  40.    
  41.    
  42.    
  43. 0 11 4 * mon-wed /etc/init.d/nginx restart  
  44.    
  45. 每月的4号与每周一到周三 的11点重启nginx  
  46.    
  47.    
  48.    
  49. 0 4 1 jan * /etc/init.d/nginx restart  
  50.    
  51. 一月一号的4点重启nginx  
  52.    
  53.    
  54.    
  55. */30 * * * * /usr/sbin/ntpdate 210.72.145.20  
  56.    
  57.    
  58. 每半小时同步一下时间  

 

 

应用到thinkphp

首先你得把要定时执行的功能代码写到Action中。或者可以用URL访问之后可以执行也行。

例如我把定时每天遍历订单是否有成交额的更新代码放在 Order/update_status 下。

而我的项目访问地址是www.jieqinwang.com 即:这个功能的代码执行路径为:http://www.jieqinwang.com/Order/update_status

得到这个路径之后就可以去liunx去配置cron了。

 

crontab -e 进入任务列表。

按下I键进入编辑模式,然后添加一条任务。

比如我想每天中午12点执行一次我刚刚写的那段代码

就添加新的一行  0 12 * * * * curl http://www.jieqinwang.com/Order/update_status

然后按Esc键退出编辑模式,再输入:wq回车。保存退出。

这样我们就添加了一个定时任务。可以利用crontab -l来查看任务列表是否已经含有。

最后一步,因为这样添加进行有可能不会立即生效。我们重启一下cron服务就可以了。

重启服务命令:/sbin/service crond restart


原文链接:http://164418960.iteye.com/blog/2170536


0 0
原创粉丝点击