设为首页 收藏本站
查看: 612|回复: 0

[经验分享] 如何使用Linux的Crontab定时执行PHP脚本的方法

[复制链接]

尚未签到

发表于 2017-12-30 17:07:23 | 显示全部楼层 |阅读模式
  首先说说cron,它是一个linux下的定时执行工具。根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在/var/spool/cron 目录中,并使用创建它们的用户身份来执行。要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令来编辑该用户的 crontab。该文件使用的格式和 /etc/crontab 相同。当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名被保存,并写入文件 /var/spool/cron/username 中。cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个 crontab 文件改变后就不必重新启动守护进程了。
  安装crontab:
  yum install crontabs
  说明:
  /sbin/service crond start //启动服务
  /sbin/service crond stop //关闭服务
  /sbin/service crond restart //重启服务

  /sbin/service crond>  查看crontab服务状态:service crond status
  手动启动crontab服务:service crond start
  查看crontab服务是否已设置为开机启动,执行命令:ntsysv
  加入开机自动启动:
  chkconfig –level 35 crond on
  每一小时执行myscript.php如下:
  

# crontab -e  
00 * * * * /usr/local/bin/php /home/john/myscript.php
  

  

  如果你的PHP脚本可以通过URL触发,你可以使用lynx或curl或wget来配置你的Crontab。
  下面的例子是使用Lynx文本浏览器访问URL来每小时执行PHP脚本。Lynx文本浏览器默认使用对话方式打开URL。但是,像下面的,我们在lynx命令行中使用-dump选项来把URL的输出转换来标准输出。
  

00 * * * * lynx -dump http://www.iyunv.net/myscript.php  

  

  下面的例子是使用CURL访问URL来每5分执行PHP脚本。Curl默认在标准输出显示输出。使用”curl -o”选项,你也可以把脚本的输出转储到临时文件。
  

*/5 * * * * /usr/bin/curl -o temp.txt http://www.iyunv.net/myscript.php   

  下面的例子是使用WGET访问URL来每10分执行PHP脚本。-q选项表示安静模式。”-O temp.txt”表示输出会发送到临时文件。
  

*/10 * * * * /usr/bin/wget -q -O temp.txt http://www.iyunv.net/myscript.php  

  

  参  数:
  -e  编辑该用户的计时器设置。
  -l  列出该用户的计时器设置。
  -r  删除该用户的计时器设置。
  -u<用户名称>  指定要设定计时器的用户名称。
  crontab 格式:
  基本格式 :
  分钟   小时   日   月   星期   命令
  *        *      *    *     *       *
  第1列表示分钟1~59 每分钟用*或者 */1表示
  第2列表示小时1~23(0表示0点)
  第3列表示日期1~31
  第4列 表示月份1~12
  第5列标识号星期0~6(0表示星期天)
  第6列要运行的命令
  记住几个特殊符号的含义:
  “*”代表取值范围内的数字,
  “/”代表”每”,
  “-”代表从某个数字到某个数字,
  “,”分开几个离散的数字
  crontab文件的一些例子:
  30 21 * * * /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每晚的21:30重启apache。
  45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每月1、10、22日的4 : 45重启apache。
  10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每周六、周日的1 : 10重启apache。
  0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
  0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每星期六的11 : 00 pm重启apache。
  0 */1 * * * /usr/local/etc/rc.d/lighttpd restart
  每一小时重启apache
  0 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
  晚上11点到早上7点之间,每隔一小时重启apache
  0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
  每月的4号与每周一到周三的11点重启apache
  0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-429738-1-1.html 上篇帖子: 用PHP调用Oracle存储过程方法 下篇帖子: PHP中使用Jpgraph生成统计图
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表