什么是Cron和Crontab

Unix和Linux系统的各个发行版本基本都支持Cron,Cron /Crontab允许我们在设定的时间自动执行或定时执行某个任务,如应用程序或脚本。更详细的概念和使用方法介绍请点击Cron和Crontab是什么?

现在我们要讨论的是,许多的php程序员都可以很快完成Web应用的开发,PHP代码的调试也比PERL或C语言容易很多,不过经常会碰到有php程序员会问:如何在linux系统中使用crontab来运行Php脚本?比如ubuntu crontab 定时执行php代码。

Ubuntu 如何使用Crontab定时自动执行PHP脚本

现在远方博客也碰到了需要在指定的时间运行php脚本的情况,比如定时进行网站的数据统计、自动执行数据库备份任务、定时发送email等等。

如果我们不使用Cron来执行php脚本,或许我们会采用php include的方法。比如在index.php 中添加代码:<?php include "crontab.php"?>。当访客通过浏览器访问http://farlee.info/index.php的时候,自动执行了crontab.php。当然这只是一种思路,这种方法并不能指定时间定时运行PHP脚本,同时也给index.php带来了额外的服务器消耗。而Linux Ubuntu Crontab 可以很好地完成php 定时任务,这也是写这篇关于cron的文章的目的。

然后首先想到的是和windows 系统下的计划任务一样,通过在windows中使用php的命令行模式执行计划任务实现定时自动执行php脚本,这是一个思路,另外一个思路就是直接在浏览器中访问php脚本的地址,定时自动打开浏览器访问该网址,执行php脚本。因此在Ubuntu服务器系统下,同样有类似的两种思路。下面http://farlee.info/逐步介绍使用Ubuntu Crontab定时执行PHP脚本的设置方法。

PHP 安装模式

首先我们必须先确认自己在LINUX Ubuntu 服务器上php的安装模式,以CGI 模块还是Apache模块方式安装? 如果不确定php安装模式,可以使用 phpinfo() 函数查看:将<?php phpinfo(); ?> 写在php文件中上传到网站服务器,访问该页面,就在页面顶部我们找到“Server API”,如果类似“Apache 2.0 Handler”,那么就是apache模块;否则php是CGI 模式(shell 命令行模式)。这两种不同的php安装模式,正对应于前面介绍的ubuntu crontab 定时执行php的两种解决方法。

CGI 编译

如果Server API是cgi,那么在需要cron执行的php脚本的第一行额外加入一段代码#!/usr/bin/php -q(类似PERL语法),指定服务器中php可执行程序的位置,具体步骤如下:

1. 确认Ubuntu系统已经安装了php5-cli模块,安装命令:apt-get install php5-cli。在目录 /usr/bin/php下生成 php可执行程序。

2.  编辑待定时执行的php脚本文件crontab.php,如:

#!/usr/bin/php -q
<?php
$file = "/var/www/".date('H').'_'.date('i').'_'.date('s').'.txt';
file_put_contents($file,date('Y-m-d'));
?>

3.  编辑 crontab 任务:

打开终端,输入命令:crontab -e

Select an editor.  To change later, run 'select-editor'.
1. /bin/ed
2. /bin/nano        <---- easiest
3. /usr/bin/vim.tiny

选择一个Ubuntu编辑器后,编辑/tmp/crontab.AuN7IQ/crontab 文件:

# m h  dom mon dow   command

在下面添加定时执行命令:

* * * * * php /path/to/your/cron.php

5个星号分别代表定时指定每分、小时、日、月、周。如每天的下午7点执行crontab.php,命令为:

* 19 * * * php /var/www/cron/crontab.php

然后按Ctrl+O保存,Ctrl+X退出。

4. 再次执行下面的命令行:

Shell> crontab crontab

确认crontab.php的权限为可执行("chmod 755 /var/www/cron/crontab.php")。

Apache 模块

如果php安装是以 apache 模式运行的,那么在要在ubuntu服务器定时执行的php脚本开头就不用加#!/usr/bin/php  -q 这一行。php脚本在ubuntu 通过crontab的定时执行通过Lynx浏览器的自动访问来完成。

1.  Lynx浏览器安装。

Lynx浏览器是一款轻便的web浏览器,使用于大部分Unix 和Linux系统环境。安装命令:sudo apt-get install lynx。

2. 编辑cron任务,命令crontab -e

* * * * * lynx -dump http://farlee.info/cron.php

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

3. 再次执行下面的命令行:

Shell> crontab crontab

因为我在ubuntu安装的是lamp server,所以采用第二种Apache 模块的方法就可以使用crontab定时执行php脚本代码。

转载出处:远方博客

---------------------------------------------------------------------------------------------------------我是一条很土的分割线----------------------------------------------------------------------------------------------

补充:每分钟执行一次.

0-59  *  *  *  *  the run command
每隔?分钟执行一次
*/1 *  *  *  *  the run command
另一种方式

*/3 * * * * /usr/bin/php /var/www/message/schedule.php > /dev/null 2>&1 

ubuntu 系统crontab定时操作PHP相关推荐

  1. ubuntu mysql 防火墙_mysql、ubuntu系统防火墙常规操作

    mysql.ubuntu系统防火墙常规操作 编辑:006     时间:2020-02-11 mysql: 数据库操作 连接数据库: mysql -u username -p 创建数据库: creat ...

  2. Ubuntu系统的基础操作和使用

    Ubuntu系统的基础操作和使用 一.Ubuntu系统介绍 1.Ubuntu系统介绍 2.Ubuntu与其他Linux发行版区别 ①当前的Linux发行版本 ②区别 3.当前测试的ubuntu版本 4 ...

  3. php远程开机ubuntu,Ubuntu系统远程开机操作实例

    在Ubuntu系统中只要通过简单的设置,就能实现系统的远程开机,即实现wake on lan,下面以电脑A和电脑B为例,给大家介绍下Ubuntu实现远程开机的方法. 启动者(电脑A) -------- ...

  4. Ubuntu crontab 定时 python 详细

    Ubuntu系统,定时执行python脚本. 目的:每分钟执行一次timer_test.py timer_test.py    路径 /home/li/d/pythonwork/test/timer_ ...

  5. AIO-3399J重新安装Ubuntu系统-刷新固件

    Firefly-RK3399刷ubuntu系统 [Firefly RK3399试用体验]之一--Firefly-RK3399拆箱及系统初步设置 [(Firefly-RK3399)试用体验]01-开箱及 ...

  6. ubuntu系统下安装windows双系统及问题处理

    文章目录 双系统的安装 准备工作 两块磁盘两个系统 先安装的window系统后安装ubuntu win10系统下安装ubuntu的问题 看不到磁盘 win10无损转换磁盘控制器模式 先装ubuntu后 ...

  7. ubuntu 定时执行php文件,Ubuntu crontab 定时执行php脚本文件

    什么是Cron和Crontab Unix和Linux系统的各个发行版本基本都支持Cron,Cron /Crontab允许我们在设定的时间自动执行或定时执行某个任务,如应用程序或脚本.更详细的概念和使用 ...

  8. 怎么恢复linux定时器任务,定时操作 crontab at 以及恢复定时操作

    1.crontab 2.Linux下实现秒级定时任务的三种方案(crontab 每秒运行) 3.apscheduler 定时任务框架(python实现) 1.定时模块crontab Example o ...

  9. 部署scrapy爬虫到AWS Ubuntu 18.04,用crontab定时执行

    本文介绍了如何把windows下面的scrapy脚本部署到AWS Ubuntu上,并使用crontab定时执行. 我的scrapy爬虫原来部署在windows服务器,爬虫每个小时从几个字幕网站爬字幕. ...

最新文章

  1. Flask web开发之路四
  2. 重写equals所要遵守的约定
  3. 计算机视觉的基石-滤波
  4. How to Visualize Your Recurrent Neural Network with Attention in Keras
  5. OpenCV在矩阵上进行Mask 运算operations
  6. wordpress去掉category怎么操作让url更简洁友好
  7. MyBatis之八:需要说明的几个java api的生命周期以及封装
  8. 《精通Spring4.X企业应用开发实战》读后感第二章
  9. docker mysql命令大全_Docker命令大全
  10. 2019 秋招提前批蘑菇街一面面经(带答案)
  11. iview-cli 设置跨域代理服务器
  12. 网页广告拦截神器 -- Adblock Plus
  13. 倍福TwinSAFE逻辑功能块,TwinCAT3知识库中文汉化工程
  14. c语言图书馆管理系统(功能非常之多)
  15. php静态登录界面网页代码,css+html如何仿花瓣网实现静态登陆页面?(代码实例)...
  16. 星际争霸2的AI环境搭建
  17. sqoop import 数据同步到hive的用法
  18. 带孩子怎么挣钱?带孩子挣钱方法大全
  19. 怎么用python做网站?
  20. sleep的睡眠机制

热门文章

  1. python launcher什么意思_什么是 Python Launcher?
  2. OWL本体语言中OWL Lite、OWL DL、OWL Full理解
  3. Python花呗分析模型温馨提醒:支出不规范,收入两行泪
  4. 《过去的日子我们这样娱乐过7.0》
  5. 90后用HTTP写了一篇恋爱日记
  6. 计算机毕设Python+Vue幸福小区健身器材租赁系统(程序+LW+部署)
  7. Python学习:电影场次查询API
  8. 苹果开机时有Android,还是13香?曝苹果新机影像系统有巨大升级,安卓厂商:就这?...
  9. 玩游戏与计算机有什么关系,i5和i7差别大吗?玩游戏有什么区别?
  10. IOS开发——新浪微博认证失败处理