本文實例講述了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程序設計有所幫助。
您可能感興趣的文章:- php使用gearman進行任務分發操作實例詳解
- python基于json文件實現的gearman任務自動重啟代碼實例
- PHP并發多進程處理利器Gearman使用介紹
- Gearman::XS在Centos下的編譯安裝方法
- gearman隊列持久化引發的問題及解決方法
- gearman的安裝啟動及python API使用實例
- rhel5.7下安裝gearmand及啟動的方法
- PHP實現簡單的協程任務調度demo示例
- PHP 進程池與輪詢調度算法實現多任務的示例代碼
- PHP 多進程與信號中斷實現多任務常駐內存管理實例方法
- gearman管理工具GearmanManager的安裝與php使用方法示例