php解决crontab定时任务不能写入文件问题的方法分析

yipeiwu_com6年前PHP代码库

本文实例讲述了php解决crontab定时任务不能写入文件问题的方法。分享给大家供大家参考,具体如下:

今天使用crontab写的定时任务没有执行,很纳闷。

crontab.php

<?php
error_reporting(0);
$time = date("Y-m-d h:i:s",time());
file_put_contents($dir."/crontab.txt","[$time]\n",FILE_APPEND);

crontab -e

*/1 * * * * /opt/php/bin/php /var/www/koastal/crontab.php

我直接运行php命令也是可以的。

/opt/php/bin/php /var/www/koastal/crontab.php

然后我把写入文件的命令改成输出,然后存到一个文件里面就可以了。

crontab.php

<?php
error_reporting(0);
$time = date("Y-m-d h:i:s",time());
echo $time;

crontab -e

*/1 * * * * /opt/php/bin/php /var/www/koastal/crontab.php >> /var/www/koastal/log.txt

这说明crontab命令是正常的,php也只正常执行的,于是我开始怀疑人生。

网上查了查资料发现,原来是crontab命令的php是执行在cli模式下的,不能正确识别相对路径。

我之所以直接运行php命令没有报错是因为我设置了error_reporting(0);

所以我们给它绝对路径就好了,如下:

<?php
error_reporting(0);
$dir = __DIR__;
$time = date("Y-m-d h:i:s",time());
file_put_contents($dir."/crontab.txt","[$time]\n",FILE_APPEND);

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP进程与线程操作技巧总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

浅谈socket同步和异步、阻塞和非阻塞、I/O模型

在进行网络编程时,常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式 同步/异步主要针对C端: 同步:c端发出一个功能调用时,在没有...

PHP中使用break跳出多重循环代码实例

复制代码 代码如下: $array = array(1,2,3,4,5,6);  for($i=0;$i<10;$i++){  foreach($array...

PHP递归遍历指定目录的文件并统计文件数量的方法

本文实例讲述了PHP递归遍历指定目录的文件并统计文件数量的方法。分享给大家供大家参考。具体实现方法如下: <?php //递归函数实现遍历指定文件下的目录与文件数量 f...

php中header设置常见文件类型的content-type

在PHP中可以通过header函数来发送头信息,还可以设置文件的content-type,下面整理了一些常见文件类型对于的content-type值。 //date 2015-06-...

ecshop 订单确认中显示省市地址信息的方法

先添加显示这些信息: 1.修改lib_order.php文件的get_consignee函数(1798行) 添加如下代码在return前面: 复制代码 代码如下: $sql = "sel...