文档章节

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

PHP娃娃
 PHP娃娃
发布于 2015/10/16 14:34
字数 845
阅读 30
收藏 0
点赞 0
评论 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 ⋅ 2

纯PHP实现定时器任务(Timer)

纯PHP实现定时器任务(Timer)   定时器任务,在WEB应用比较常见,如何使用PHP实现定时器任务,大致有两种方案:1)使用Crontab命令,写一个shell脚本,在脚本中调用PHP文件,然后定期执行该...

thinkyoung ⋅ 2015/08/18 ⋅ 0

用php实现异步执行任务的队列(二)

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

_c_q ⋅ 2016/09/08 ⋅ 0

Linux下如何定时执行php脚本?Linux下如何设置定时任务?Crontab定时执行程序

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

weixingo ⋅ 2016/03/14 ⋅ 0

linux-crontab之环境变量的问题

  前言      在linux服务器上,计划任务基本都是crontab进行管理的。但是有些脚本手动运行都很正常,一放到crontab里面就不执行了。这一般都是环境变量的问题引起的。      环境变...

linux运维菜 ⋅ 06/02 ⋅ 0

PHP多进程开发与Redis结合实践

业务逻辑介绍: 用户在 APP 上发帖子,然后存储到 Redis 的 List 列表中 利用 Linux 的 crontab 定时任务功能,按秒请求执行PHP脚本文件(processNewsRedisList.php) 调用 redis_process 处理...

老K8 ⋅ 昨天 ⋅ 0

PHP 每隔几秒执行一次

背景是这样的:我需要一段PHP代码去定期对数据库操作,并把结果保存起来。如果方法是用户请求的时候来触发执行这个代码,显然用户的响应时间变长,影响用户体验!如果利用操作系统的定时任务...

lixiaokai2008 ⋅ 2016/09/11 ⋅ 0

Linux下定时任务 - crontab

crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进...

寰宇01 ⋅ 04/23 ⋅ 0

ThinkPHP实现定时任务

项目服务端框架我选用的是ThinkPHP,由于策划案中有需求要定时刷新指定数据,所以在windows平台我使用微软的计划任务调用bat脚本来执行下面的命令来完成 即使用PHP的CLI模式调用ThinkPHP的入...

水一风云 ⋅ 2014/07/11 ⋅ 16

队列应用场景,自己实现队列

视频地址:http://t.cn/Rvw34S9 一、队列使用场景:为什么需要队列 在web开发中,我们经常会遇到需要处理批量任务的时候,这些批量任务可能是用户提交的,也可能是当系统被某个事件触发时需要...

蜗牛奔跑 ⋅ 2015/11/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 52分钟前 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

eclipse酷炫大法之设置主题、皮肤

eclipse酷炫大法 目前两款不错的eclipse 1.系统设置 Window->Preferences->General->Appearance 2.Eclipse Marketplace下载【推荐】 Help->Eclipse Marketplace->搜索‘theme’进行安装 比如......

anlve ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部