Ubuntu系统下用Crontab命令定时执行PHP文件详解

 更新时间:2017年06月28日 09:24:29   作者:严颖  
这篇文章主要给大家介绍了在Ubuntu系统下用Crontab命令定时执行PHP文件的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

前言

一般我在开发中,常用的定时任务有2种。一种是直接调用PHP文件执行,还有一种是调用远程URL地址。

首先,先来亮相一下我们今天的主角,Crontab命令。这个是系统定时命令,作用是定时的去执行一些任务。包含一些系统级别的任务,当然用户也可以直接借用该命令来实现自己的一些计划任务。

该命令一般跟随系统启动,我们可以使用一下命令来查看是否cron是否启动

pgrep cron

如果启动了,会返回一个进程id

Crontab文件一般存放于/etc目录下。我们使用,crontab -e来编辑cron任务。(第一次用这个命令,会让你选择文本编辑器)

打开cron文件,注意观察最后一行 m h dom...这里简要介绍一下它的意思。

  • m:分钟,0-59
  • h:小时,0-23
  • dom:日期,1-31
  • mon:月份,1-12
  • dow:星期,0-6,0为星期天
  • command:命令

这里,我们应该已经知道其大概的用法了。我们只要在对应的位置填写上我们需要的数字日期,就可以使用它来表示:在某月(mon)的某天(dom)或者星期几(dow)的几点(h,24小时制)几分(m)执行某个命令(command)。

举个栗子:

* * * * * php /path/to/your/cron.php
5个星号分别代表定时指定每分、小时、日、月、周。

* 19 * * * php /var/www/cron/crontab.php
讲第二个参数h填写为19,则表示每天的下午7点执行crontab.php。

* * * * * php /path/to/your/cron.php   
每隔一分钟执行一次任务 

0 * * * * php /path/to/your/cron.php     
每小时的0点执行一次任务,比如6:00,10:00 

6,10 * 2 * * php /path/to/your/cron.php   
每个月2号,每小时的6分和10分执行一次任务 

*/3,*/5 * * * * php /path/to/your/cron.php  
每隔3分钟或5分钟执行一次任务,比如10:03,10:05,10:06

在这个例子中,我们看到不仅有数字还有星号和/等等符号。这些符号可以让定时更加的灵活。

  • *(星号):表示任意值,在相应位置填写*,可以代表任意执行。比如h为*,则为任意的小时
  • ,(逗号):表示一个部分填写多个值,比如在m位置填写1,5代表1分钟或5分钟时候
  • /(斜杠):表示每隔多久,比如在h部分填写*/2表示每隔2个小时,*/3表示每隔3个小时,
  • */1和*无区别,所以可以省略。这里可以想想,*/2表示能被2整除的时间就好理解了。

使用你的编辑器,保存->退出之后。重新启动cron任务。在每天的相应时间即可看到效果。

下面我们就先来说说PHP开发中,我常用的两种。

第一种:直接调用PHP文件

这种比较简单,我们新建一个php文件。向一个文件插入一些简单的日期内容。

#!/usr/bin/php -q
<?php

$file = "/var/www/".date("H")."_".date("i")."_".date("s").".txt";
file_put_contents($file,date("Y-m-d"));

?>

注意:这种直接调用PHP文件需要在PHP文件最上方加入#!/usr/bin/php -q代码,而第二种方式(接下来会讲),是直接访问链接,通过Apache来解析PHP,这种PHP脚本则不需要加这段代码。

1 6 * * * /path/to/your/cron.php
每天的上午6点01分,执行cron.php文件

第二种:通过访问URL链接定时。

访问URL链接需要借助于浏览器来实现。我们选择Lynx浏览器,Lynx浏览器是一款轻便的web浏览器,使用于大部分Unix 和Linux系统环境。安装命令:

sudo apt-get install lynx

然后就可以和直接访问PHP文件类似的定时访问URL啦。

* * * * * lynx -dump http://weiya.me/index.php

注意这个地址最好用绝对地址,包含“http://”的完整url。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • Linux系统下通过jar包进程号查询jar程序占用端口的常用方法

    Linux系统下通过jar包进程号查询jar程序占用端口的常用方法

    在Linux系统中,如果你已经知道了Java应用程序的进程ID(PID),你可以使用多种方法来查找该进程所占用的端口号;判断方法可以使用两个方法结果是否一致,以下是几种常用的方法,需要的朋友可以参考下
    2024-10-10
  • 如何监控 Linux 服务器状态的方法

    如何监控 Linux 服务器状态的方法

    这篇文章主要介绍了如何监控 Linux 服务器状态的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Ubuntu 20.04换阿里源的方法

    Ubuntu 20.04换阿里源的方法

    这篇文章主要介绍了Ubuntu 20.04换阿里源的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 在LINUX系统上使用rsync命令详解

    在LINUX系统上使用rsync命令详解

    rsync是一款多功能的文件同步工具,支持增量备份,减少数据传输时间和带宽,它可以与不同的shell和协议配合使用,确保数据传输的安全性,提供了详细的安装和使用指南,适用于多种Linux发行版,使用户能够轻松掌握和应用,Rsync的命令选项丰富
    2024-10-10
  • CentOS 5.5使用yum来安装LAMP(php运行环境)

    CentOS 5.5使用yum来安装LAMP(php运行环境)

    今天用yum方法搭建起了个LAMP环境,中间遇到了很多问题,经过google和各位前辈的帮助,终于将环境搭建起来,现在把完整的步骤记录下来,
    2010-09-09
  • CentOS下使用Squid架设CDN服务器的方法

    CentOS下使用Squid架设CDN服务器的方法

    这篇文章主要介绍了CentOS下使用Squid架设CDN服务器的方法,需要的朋友可以参考下
    2014-07-07
  • CentOS6.8中/英文环境切换教程图解

    CentOS6.8中/英文环境切换教程图解

    这篇文章主要介绍了CentOS6.8中/英文环境切换教程,本文只以中文切换为英文为例给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • linux中定时任务crond命令使用方法

    linux中定时任务crond命令使用方法

    这篇文章主要为大家详细介绍了linux中定时任务crond命令的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • 基于Linux系统中查看硬件等信息的方法详解

    基于Linux系统中查看硬件等信息的方法详解

    本篇文章是对Linux系统中查看硬件等信息的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Linux 块设备驱动代码编写

    Linux 块设备驱动代码编写

    这篇文章主要介绍了Linux 块设备驱动代码编写,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04

最新评论