php添加linux定时任务,PHP与Linux定时任务
定时任务在实际开发中用到是非常多的,这里也简单说说PHP怎么执行定时任务。我们都知道PHP是一门解释性语言,当我们在浏览器中输入某个URL时,我们才能去执行PHP,但是如果不访问URL呢,怎么让PHP跑起来?这个问题,可能大家都没有仔细思考过,当然我也没有考虑过,,,,
PHP的定时任务其实就是让PHP脚本每隔一段时间运行一次,这就需要结合Linux的crontab了。下面我们需要先了解一下crontab。
Linux crontab命令
Linux crontab是用来定期执行程序的命令。先看一下下面几个命令。
crontab -e //编辑定时任务
crontab -r //删除定时任务
crontab -l //列出当前定时任务
除此之外你还需要知道的是,定时任务的格式是怎么样的
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其余类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推
通过一个实例来了解定时任务
首先我们在Linux下任一目录新建index.php文件<?php
$path = dirname(__FILE__) . '/data.txt';
if (!file_exists($path)) {
file_put_contents($path, 0);
} else {
$num = file_get_contents($path);
file_put_contents($path, $num + 1);
}
这段代码的意思在data.txt中写一个数字,并且每次执行将数字更新+1。
然后我们使用crontab -e命令来创建定时任务,内容为下*/1 * * * * php /www/wwwroot/crontab/index.php
这样其实定时任务就建好了,这句代码的意思是没过一分钟执行一次这个目录下的index.php文件一次。
代码写好了,我们需要看定时任务是不是成功执行了。tail -f /var/log/cron
使用该命令才看定时任务日志,下面就说明定时任务已经成功执行了。
接下来我们可以看一下,index.php同目录下是不是多了一个'data.txt'的文件,如果有说明我们已经成功了,并且文件中的值会每过一分钟+1。
如果,如果并没有出现预期的结果,那么,,,开始排查bug吧,这是每个程序员都会经历的,同样的代码,同样的操作,为啥会出现不一样的结果??!!(抓狂)
冷静一下,开始找bug了,首先你的确保自己的定时任务执行了,自己通过crontab日志确定,然后再想是不是代码的问题,php index.php先手动执行试试,咦,手动执行竟然也没出现预料的结果,开始仔细检查代码,而又想到自己在本地windows下能够完美运行该文件,那么如果有问题,可能出现在Windows和Linux系统的差异上,路径?权限?
想到就试试,将代码里的路径换成绝对路径,并使用“/”连接(windows路径连接符是“\”),最后赋予index.php写和执行的权限chmod 777 index.php
OMG!预期效果达到了。
老规矩,如果你有疑问,欢迎留言。你若问,我必答。
php添加linux定时任务,PHP与Linux定时任务相关推荐
- c语言 linux系统 delay,Linux下实现秒级定时任务的两种方案
Linux下实现秒级定时任务的两种方案(Crontab 每秒运行): 第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间. while true ;do command s ...
- linux shell脚本 nohup,linux真正使用shell脚本做定时任务 关键的Nohup
网上有很多的文章教大家使用定时任务,所以别的废话我就不多说了 我这里直接有SH来做定时,只是有一点大家不知道,一定要用Nohup,否则用户退出终端以后,SH任务会被自动终止掉 假设有一 tash.sh ...
- linux作业调度软件,Zeit - Linux中定时任务和临时任务的图形化工具
Zeit是一个开源的GUI工具,通过"crontab"和"at"来调度作业.它是用C++编写的,在GPL-3.0许可下发布.是一种易于使用的工具,提供了一个简单 ...
- linux查看定时服务,linux 定时任务 crond 服务介绍
linux定时任务crond服务应用指南 Linux的定时任务crond(crontab)服务 1.crond是什么? crond是linux系统中用来定期执行命令或者指定程序的程序(软件) 2.秒级 ...
- Linux实战教学笔记13:定时任务补充
第十三节 定时任务补充 标签(空格分隔): Linux实战教学笔记 ---[更多资料点我查看][1] 1,生产环境常用Crontab专业实例 1.1书写crontab定时任务多个基本要领 1.1.1 ...
- linux thinkphp 计划任务_ThinkPHP定时任务项目案例分析
定时任务常见的是Linux中的crontab定时任务,这种是通过编写脚本来执行的,它会在后台一直循环执行.但是有时候我们没有服务器权限或者说我们没有独立的服务器,那又该怎么办?其实,定时任务还有一种就 ...
- linux定时备份到邮箱,定时任务备份数据库并发送邮箱
定时备份数据库文件.并发送到邮箱中. 使用 crontab 定时任务,执行sh脚本备份现有的数据库, 并通过mutt 这个软件发送到邮箱中. 上面是使用原理. 来看看操作步骤: 第一.建立sh脚 ...
- linux系统内核参数命令,Linux内核启动参数解析及添加
1.环境: Linux linuxidc 4.4.0-89-generic #112-Ubuntu SMP Mon Jul 31 19:38:41 UTC 2017 x86_64 x86_64 x86 ...
- linux删除相同用户,Linux 批量添加和删除用户
Linux批量添加和删除用户 一,工具作用Linux批量添加和删除用户 在Linux用户管理中,经常需要用到批量添加或删除用户:如果用 useradd或adduser来添加大量用户,对系统管理员的体力 ...
最新文章
- 郁闷的时候看看这头驴,改变你的心态!
- 机器学习:正则化原理总结
- php phpanalysis2.0,使用phpAnalysis打造PHP应用非侵入式性能分析器
- HDU——1054 Strategic Game
- [小技巧][JAVA][转换]字符数组char[]与字符串String之间互相转换
- git实现审核功能_一文教你如何搭建PDD分佣小程序实现财富自由
- 京东回应“两年将回购20亿美元股份”;微软即刻关闭全球所有旗下商店;. Net 5首个预览版发布|极客头条...
- Android 单元测试cmd 命令集
- 图解大数据技术:从入门到精通系列教程
- Protected Process Light(PPL)微软系统进程保护机制
- 【毕业设计】基于单片机的便携式空气质量检测仪 - 物联网 嵌入式
- 【NAS备份】摆脱丢数据的噩梦,群晖备份硬核实战教程分享
- 我要写整个中文互联网界最牛逼的JVM系列教程 | 「JVM与Java体系架构」章节:JVM的发展历程
- 发票核验API 分享推荐
- [励志]知乎热门:做事情三分钟热度怎么破?
- CSS 重要属性与定位
- 51个Python鲜为人知的秘密特性,老司机看完都惊叹不已
- 弘辽科技:淘宝销量数据从哪查?销量怎么提升?
- 美团点评Robust(泛型与热更新方案)
- 50多个有用的Docker工具集
热门文章
- java checked异常有那些,java checked exceptions
- druid 多数据源_Druid连接池的使用以及注意事项
- 异常信息配置文件已被另一个程序更改_抢先目睹:SpringBoot2.4配置文件加载机制大变化
- python接收邮件g_Python接收Gmail新邮件并发送到gtalk的方法
- c语言乘法口诀倒三角,乘法口诀表,C语言实现
- mysql延迟注入br_(原创)安全狗SQL注入绕过思路[sql注入waf绕过][sql注入bypass]
- mysql gno( )_MySql笔记(一)
- mysql 双冒号_jdk8新特性之双冒号 :: 用法及详解
- one-hot与哑变量(dummy variable)的区别
- java dispatchevent_dispatchEvent(AWTEvent) 分派事件