文档章节

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

PHP娃娃
 PHP娃娃
发布于 2015/10/16 14:34
字数 845
阅读 38
收藏 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下如何定时执行php脚本?Linux下如何设置定时任务?Crontab定时执行程序

Linux下如何定时执行php脚本?Linux下如何设置定时任务?Crontab定时执行程序 键入 crontab -e 编辑crontab服务文件 ------------------------------------------Ubuntu中的linux----------...

weixingo
2016/03/14
89
0
php中的$argv和$argc

在命令行里执行php脚本时,我们可以给它参数$argv,它是一个数组,形如 第一个元素保存的是脚本的文件名,其他是我们输入的参数,(参数是以空格分开). $argc 保存着$argv的长度. 习惯用法p...

真座山雕
2013/02/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

20180920 rzsz传输文件、用户和用户组相关配置文件与管理

利用rz、sz实现Linux与Windows互传文件 [root@centos01 ~]# yum install -y lrzsz # 安装工具sz test.txt # 弹出对话框,传递到选择的路径下rz # 回车后,会从对话框中选择对应的文件传递...

野雪球
今天
2
0
OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
7
3
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
今天
4
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
2
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部