文档章节

如何使用Linux的Crontab执行PHP脚本

PHP娃娃
 PHP娃娃
发布于 2015/10/16 14:34
字数 845
阅读 60
收藏 0

近期写了一个PHP脚本,需要每天执行,于是就想到了计划任务,这个功能因为会比较常用,所以在此记下一笔。

一、首先写好你的PHP脚本,比如test.php,我的PHP脚本是需要网址访问的,放在网站的根目录,(如:http://www.aaa.com/test.php),当然你也可以是其它路径,此处路径写正确即可。

二、找到你的crontab的文件位置,并且在其中调用你的PHP脚本

1、crontab的文件位置一般在/var/spool/cron/下,如果你是root用户,那下面有个root文件,建议日常备份,避免误删除导致crontab 文件丢失;

2、打开root文件,添加调用PHP脚本命令

    */5 * * * * /usr/bin/curl -o temp.txt https://www.aaa.com/test.php

    //第5分钟执行一次test.php

【备注:添加方式有多种,此处可自行选择,以下列出几种供大家参考:】

(1):在Crontab中使用PHP执行脚本

00 * * * * /usr/local/bin/php /home/john/test2.php   //每小时执行一次test2.php

/usr/local/bin/php为PHP程序的路径      /home/john/test2.php为执行脚本的绝对路径

(2):在Crontab中使用URL执行脚本

如果你的PHP脚本可以通过URL触发,你可以使用lynx或curl或wget来配置你的Crontab。

方一:00 * * * * lynx -dump https://www.aaa.com/test.php 

           //每小时执行一次test.php

         【Lynx文本浏览器默认使用对话方式打开URL,我们在lynx命令行中使用-dump选项来把URL的输出转换来标准输出。】

方二:*/5 * * * * /usr/bin/curl -o temp.txt https://www.aaa.com/test.php  

            //使用CURL访问URL来每5分执行一次test.php
          【Curl默认在标准输出显示输出。使用”curl -o”选项,你也可以把脚本的输出转储到临时文件。】

  方三:    */10 * * * * /usr/bin/wget -q -O temp.txt https://www.aaa.com/test.php

                //使用WGET访问URL来每10分执行PHP脚本

              【-q选项表示安静模式。”-O temp.txt”表示输出会发送到临时文件】

crontab用法

crontab的格式如下面:

f1 f2 f3 f4 f5 program

其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行程式的路径。

  • 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推

  • 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推

  • 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推

  • 当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其余类推

三、检查是否执行脚本,如不成功,可到日志查看

默认情况下,crontab中执行的日志写在/var/log下,如:/var/log/cron /var/log/cron.1 /var/log/cron.2

如crontab 没有成功,检测crontab 服务是否启动,

/etc/init.d/crond status   //查看状态

/etc/init.d/crond restart   //重启cron

cron 是系统守护进程,位置:
/etc/init.d/crond
参数:
start
stop
restart
reload

   

© 著作权归作者所有

共有 人打赏支持
PHP娃娃
粉丝 2
博文 11
码字总数 11448
作品 0
通州
程序员
私信 提问
PHP不支持多线程,有时候处理问题不是那么爽,今天谈论一下PHP定时执行的方法

PHP定时执行的三种方式实现 1、windows 的计划任务 2、linux的脚本程序 3、让web浏览器定时刷新 具体实现 windows计划任务 PHP很少在win服务器上跑,具体实现也不再深究,看网上实现的原理大...

anziguoer
2014/04/10
0
2
Linux基础学习-crond系统计划任务

系统计划任务 大部分系统管理工作都是通过定期自动执行某个脚本来完成的,那么如何定期执行某个脚本,从而实现运维的自动化,这就要借助Linux的cron功能了. 计划任务分为一次性计划任务和周期性...

抖音不抖
08/17
0
0
用php实现异步执行任务的队列(二)

六、队列具体实现三:写执行队列的程序 根据设计,执行队列的程序文件是 doqueue.php , 它的主要功能是把任务从队列表里取出来,并且在后台执行。 doqueue.php部分代码: 七、具体任务的业务...

_c_q
2016/09/08
293
0
linux定时运行命令脚本——crontab

Linux中,周期执行的任务一般由cron这个守护进程来处理 ps -ef | grep cron cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是“c...

长平狐
2013/01/06
158
0
linux定时运行命令脚本——crontab

Linux中,周期执行的任务一般由cron这个守护进程来处理 ps -ef | grep cron cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是“c...

晨曦之光
2012/03/02
516
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7 部署Apache服务器

centos7 部署Apache服务器 置顶 2017年09月05日 09:12:49 师太,老衲把持不住了 阅读数:19700 飞翔科技 2017-09-04 16:24 Apache程序是目前拥有很高市场占有率的Web服务程序之一,其跨平台和...

linjin200
39分钟前
1
0
CENTOS7 搭建文件服务器:samba共享linux文件夹

一、安装samba: sudo yum install samba 二、配置samba共享目录 sudo vi /etc/samba/smb.conf [rpi_web_notebooks] comment = 树莓派jupyter notebook目录 path = /home/......

mbzhong
49分钟前
2
0
解析Nuxt.js Vue服务端渲染摸索

本篇文章主要介绍了详解Nuxt.js Vue服务端渲染摸索,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 Nuxt.js 十分简单易用。一个简...

前端攻城老湿
58分钟前
4
0
深入解析React中的元素、组件、实例和节点

React 深入系列,深入讲解了React中的重点概念、特性和模式等,旨在帮助大家加深对React的理解,以及在项目中更加灵活地使用React。 React 中的元素、组件、实例和节点,是React中关系密切的...

前端攻城小牛
今天
6
0
菜鸟网络三面面经(java开发岗):Spring boot+JVM+线程池+中间件

一面 1、HaspMap底层原理?HaspTable和ConcurrentHashMap他们之间的相同点和不同点? 2、由上题提到锁的问题 3、MySQL的表锁&行锁&乐观锁&悲观锁,各自的使用场景 4、Java线程锁有哪些,各自的...

别打我会飞
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部