本文實(shí)例講述了php解決crontab定時(shí)任務(wù)不能寫入文件問題的方法。分享給大家供大家參考,具體如下:
今天使用crontab寫的定時(shí)任務(wù)沒有執(zhí)行,很納悶。
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
我直接運(yùn)行php命令也是可以的。
/opt/php/bin/php /var/www/koastal/crontab.php
然后我把寫入文件的命令改成輸出,然后存到一個(gè)文件里面就可以了。
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也只正常執(zhí)行的,于是我開始懷疑人生。
網(wǎng)上查了查資料發(fā)現(xiàn),原來是crontab命令的php是執(zhí)行在cli模式下的,不能正確識(shí)別相對(duì)路徑。
我之所以直接運(yùn)行php命令沒有報(bào)錯(cuò)是因?yàn)槲以O(shè)置了error_reporting(0);
所以我們給它絕對(duì)路徑就好了,如下:
?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);
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP進(jìn)程與線程操作技巧總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP基本語法入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- php使用gearman進(jìn)行任務(wù)分發(fā)操作實(shí)例詳解
- python基于json文件實(shí)現(xiàn)的gearman任務(wù)自動(dòng)重啟代碼實(shí)例
- PHP并發(fā)多進(jìn)程處理利器Gearman使用介紹
- Gearman::XS在Centos下的編譯安裝方法
- gearman隊(duì)列持久化引發(fā)的問題及解決方法
- gearman的安裝啟動(dòng)及python API使用實(shí)例
- rhel5.7下安裝gearmand及啟動(dòng)的方法
- PHP實(shí)現(xiàn)簡(jiǎn)單的協(xié)程任務(wù)調(diào)度demo示例
- PHP 進(jìn)程池與輪詢調(diào)度算法實(shí)現(xiàn)多任務(wù)的示例代碼
- PHP 多進(jìn)程與信號(hào)中斷實(shí)現(xiàn)多任務(wù)常駐內(nèi)存管理實(shí)例方法
- gearman管理工具GearmanManager的安裝與php使用方法示例