linux使用crontab实现PHP执行计划定时任务


Posted in PHP onMay 10, 2014

首先说说cron,它是一个linux下的定时执行工具。根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在/var/spool/cron 目录中,并使用创建它们的用户身份来执行。要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令来编辑该用户的 crontab。该文件使用的格式和 /etc/crontab 相同。当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名被保存,并写入文件 /var/spool/cron/username 中。cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个 crontab 文件改变后就不必重新启动守护进程了。

安装crontab:

yum install crontabs

说明:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

查看crontab服务状态:service crond status

手动启动crontab服务:service crond start

查看crontab服务是否已设置为开机启动,执行命令:ntsysv

加入开机自动启动:
chkconfig ?level 35 crond on

crontab命令:

功能说明:设置计时器。

法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]

补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下:
Minute Hour Day Month DayOFWeek Command

数:
-e  编辑该用户的计时器设置。
-l  列出该用户的计时器设置。
-r  删除该用户的计时器设置。
-u<用户名称>  指定要设定计时器的用户名称。

crontab 格式:

基本格式 :

分钟   小时   日   月   星期   命令

*        *      *    *     *       *

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

记住几个特殊符号的含义:
“*”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字

# Use the hash sign to prefix a comment
# +—————- minute (0 ? 59)
# | +————- hour (0 ? 23)
# | | +———- day of month (1 ? 31)
# | | | +——- month (1 ? 12)
# | | | | +—- day of week (0 ? 7) (Sunday=0 or 7)
# | | | | |
# * * * * * command to be executed

crontab几个例子如下:

(1)第一个例子。

30 21 * * * /etc/init.d/nginx restart
每晚的21:30重启 nginx。

(2)第二个例子,也就是本教程测试的例子

* * * * * /usr/bin/php -f /root/test.php >> test.log

每一分钟执行/root/test.php文件,将结果输出到test.log中。

完成了上面基础工作后,就来看看怎么使用crontab定时执行PHP脚本:

(1)我在/root下新建test.php文件,内容如下:

<?php
        #!/usr/bin/php -q
        echo  date('Y-m-d H:i:s')."from http://www.phpddt.com \n";
?>

说明:你可以用whereis php查找php执行文件位置。

(2)然后crontab -e编写如下shell:

* * * * * /usr/bin/php -f /root/test.php >> test.log

说明:test.php必须为可执行文件:chmod +x test.php

测试结果很正常,截图如下:

linux使用crontab实现PHP执行计划定时任务

当然你可以用使用crontab -e继续添加任务,在/var/spool/cron下你可以看到一个root文件。
windows下直接用windows计划任务,通过bat打开网页就可以了。不像linux这么复制。

PHP 相关文章推荐
PHP初学入门
Nov 19 PHP
PHP中for与foreach的区别分析
Mar 09 PHP
php4与php5的区别小结(配置异同)
Dec 20 PHP
完美的2个php检测字符串是否是utf-8编码函数分享
Jul 28 PHP
实例讲解PHP面向对象之多态
Aug 20 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
phpcms手机内容页面添加上一篇和下一篇
Jun 05 PHP
php进行ip地址掩码运算处理的方法
Jul 11 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
PHP实时统计中文字数和区别
Feb 28 PHP
php设计模式之适配器模式原理、用法及注意事项详解
Sep 24 PHP
PHP实现单例模式建立数据库连接的方法分析
Feb 11 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
May 10 #PHP
php判断电脑访问、手机访问的例子
May 10 #PHP
php计算程序运行时间的简单例子分享
May 10 #PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
May 10 #PHP
php递归删除目录下的文件但保留的实例分享
May 10 #PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
May 10 #PHP
php使用mkdir创建多级目录入门例子
May 10 #PHP
You might like
php下使用SMTP发邮件的代码
2008/01/10 PHP
Snoopy类使用小例子
2008/04/15 PHP
php intval的测试代码发现问题
2008/07/27 PHP
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
PHP控制前台弹出对话框的实现方法
2016/08/21 PHP
yepnope.js使用详解及示例分享
2014/06/23 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
js实现简单的验证码
2015/12/25 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
2016/08/31 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
2017/02/20 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
跟老齐学Python之复习if语句
2014/10/02 Python
Python中encode()方法的使用简介
2015/05/18 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
用Python实现筛选文件脚本的方法
2018/10/27 Python
浅谈python的dataframe与series的创建方法
2018/11/12 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
2020/01/06 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
Django框架实现在线考试系统的示例代码
2020/11/30 Python
python 通过 pybind11 使用Eigen加速代码的步骤
2020/12/07 Python
python利用xpath爬取网上数据并存储到django模型中
2021/02/26 Python
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
GoDaddy英国:全球排名第一的域名注册商
2018/06/08 全球购物
盛大二次面试题
2016/11/18 面试题
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
《荷花》教学反思
2014/04/16 职场文书
护士医德医风自我评价
2014/09/15 职场文书
整改报告怎么写
2014/11/06 职场文书
暂住证证明
2015/06/19 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书