PHP结合Linux的cron命令实现定时任务实例

小云云
发布: 2018-03-21 13:19:54
原创
2078人浏览过

PHP死循环来处理定时任务的效率是很低的。大家都建议使用Linux内置的定时任务crontab命令来调用php脚本来实现。本文主要和大家分享PHP结合Linux的cron命令实现定时任务实例,希望能帮助到大家。

php定时任务的两种方法:
1、web方式调用php网页,但是这样存在安全问题,外部用户同时也可以调用此文件。


*/1 * * * * /usr/bin/wget -q -O temp.txt http://wan.coolxap.cn/cron
登录后复制

2、用php-cli 模式来调用 php脚本,cli是以一种命令行模式来执行php脚本


* * * * * /usr/bin/php -f /root/test.php >> test.log
登录后复制

使用crontab -e添加任务,在/var/spool/cron下你可以看到一个root文件。

重启服务,使修改 生效


service crond restart
登录后复制

crontab最细的粒度是分钟,但可以起多个任务+休眠来达到模拟 以秒为单位的任务。

立即学习PHP免费学习笔记(深入)”;

* * * * * /bin/date >> /tmp/date.txt
* * * * * sleep 10; /bin/date >> /tmp/date.txt   
* * * * * sleep 20; /bin/date >> /tmp/date.txt
* * * * * sleep 30; /bin/date >> /tmp/date.txt
* * * * * sleep 40; /bin/date >> /tmp/date.txt
* * * * * sleep 50; /bin/date >> /tmp/date.txt列举个真实场景:
登录后复制


*/1 * * * * /usr/bin/wget --spider http://wan.coolxap.cn/cron/closeinvalidlive
0 0 27 * * /usr/bin/wget --spider http://wan.coolxap.cn/cron/magicdistributed
0 0 26 * * /usr/bin/wget --spider http://wan.coolxap.cn/cron/guildassessment
0 0 27 * * /usr/bin/wget --spider http://wan.coolxap.cn/cron/guildprizestatement
登录后复制

当定时任务不起作用
定时任务,里面执行php脚本。
发现不能直接执行,需要切换到www用户来执行php脚本,
否则,脚本所做的操作都是以 root 的权限来执行的,比如创建文件目录 和 下载的图片都是属于 root 用户组。
直接导致到的问题是,web网页用户由于权限不足就无法对该目录进行操作,比如root创建的目录,web用户无法在该目录上传图片。

解决方案如下:

切换到www用户来执行命令


su www "-c cd /alidata/www/wwwroot/17xap/e/caidiscuz/ && /aliyun/webserver/php5.2.17/bin/php pushnews2.php -9 -u"
登录后复制

另外解决图片下载时发现的一个解决问题的小技巧。
用接口的形式来访问某个php文件时,发现下载图片失败,提示权限不足 无法在该目录做图片存储操作。
然后检查目录的权限是wr-wr-wr 0666,理论上是支持目录的读写。但为什么不能做图片下载操作呢?
因为没有x权限就无法在该目录下执行任何命令,包括mkdir、ls等。创建图片不仅需要 w权限还需要x权限。
改为wrx-r-xr-x 0755权限后就能正常下载图片。

解决问题的技巧是先给足0777权限后,待问题解决了,确定是目录权限不足导致脚本无法正常运行的时候,再把目录的权限收回来,逐步提高权限。

以上就是PHP结合Linux的cron命令实现定时任务实例的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号