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录入页面中动态从数据库中提取数据的实现
Oct 09 PHP
几个php应用技巧
Mar 27 PHP
php自定义函数之递归删除文件及目录
Aug 08 PHP
php 面向对象的一个例子
Apr 12 PHP
优化PHP代码技巧的小结
Jun 02 PHP
几个实用的PHP内置函数使用指南
Nov 27 PHP
laravel实现批量更新多条记录的方法示例
Oct 22 PHP
PHP实现找出链表中环的入口节点
Jan 16 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
May 28 PHP
thinkPHP框架实现多表查询的方法
Jun 14 PHP
php的扩展写法总结
May 14 PHP
php获取是星期几的的一些常用姿势
Dec 15 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
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
php中http与https跨域共享session的解决方法
2014/12/20 PHP
PHP开发注意事项总结
2015/02/04 PHP
PHP用反撇号执行外部命令
2015/04/14 PHP
php操作MongoDB类实例
2015/06/17 PHP
大家须知简单的php性能优化注意点
2016/01/04 PHP
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
使用javascipt---实现二分查找法
2013/04/10 Javascript
浅谈JavaScript中指针和地址
2015/07/26 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
基于Node.js实现nodemailer邮件发送
2016/01/26 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
2016/07/07 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
Angularjs中使用layDate日期控件示例
2017/01/11 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
js实现消灭星星(web简易版)
2020/03/24 Javascript
[04:22]DSPL第二期精彩集锦:残血反杀!
2014/12/10 DOTA
Python中的二叉树查找算法模块使用指南
2014/07/04 Python
Python使用MYSQLDB实现从数据库中导出XML文件的方法
2015/05/11 Python
python字典的常用操作方法小结
2016/05/16 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
如何用PHP实现邮件发送
2012/12/26 面试题
党员违纪检讨书
2014/02/18 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
学校政风行风自查自纠报告
2014/10/21 职场文书
新郎结婚保证书
2015/02/26 职场文书
个人政治思想总结
2015/03/05 职场文书
党员公开承诺书(2016最新版)
2016/03/24 职场文书