php定时执行任务没有执行,linux中定时任务crontab中的php任务无法执行,求可能的原因...
等待被執行的test.php腳本,該腳本在本地環境可以執行,在linux上手動執行php test.php也可以執行
$name='./log/20161025.txt';
if(file_exists($name))
{
file_put_contents($name, '定時任務開始了');
}
執行 crontab -e 編輯定時任務
* * * * * /usr/bin/php /home/wwwroot/demo/test.php > /var/log/cron.log
我的嘗試:
執行ps -ef | grep cron,查看定時任務進程,可以看到一個進程,也就是說定時任務在運行,所以不存在定時任務沒有開啟的問題
執行/usr/sbin/service cron restart,重啟定時任務,cron.log中沒記錄,20161025.txt中也沒有內容
執行chomd +x test.php 增加權限,沒有效果
執行which php,返回/usr/bin/php php路徑沒錯
暫時找不到可能的原因,求高手思路
補充:
最后測試定時任務是可以執行的
$name=__DIR__.'/log/20161025.txt';
if(file_exists($name))
{
file_put_contents($name,date('Y-m-d H:i:s',time())."\r\n",FILE_APPEND);
}
用腳本的打印當前時間,這是每分鐘執行一次
php路徑沒錯,但是啟動定時任務時工作目錄不是你的php文件所在目錄,所以你的代碼要改下
$name=__DIR__.'/log/20161025.txt';
if(file_exists($name))
{
file_put_contents($name, '定時任務開始了');
}
感覺是路徑不對,php腳本里面的相對地址改成絕對路徑試試
PHP路徑沒錯,錯在PHP代碼里面的一些路徑,在寫命令行的程序時,盡量避免使用有依賴性的東西,比如相對目錄,
你這個錯就出在相對目錄上,你啟動crontab 去執行你的php腳本前,先手動執行一次,就知錯在哪里。
把你的相對路徑打印一下。一定不是你想像中的路徑。
你可以
locate 20161025.txt
,看下文件有沒有生成。
locate
前先
updatedb
。
確定一下你的權限問題 執行以下crontab -l確定你已經成功添加了定時任務
[DongYao$ 19:28]? $crontab -l
* * * * * /bin/echo `date` >> /var/log/test.log
You have mail in /var/mail/DongYao
[DongYao$ 19:39]? $
[root$ 19:37]? $tail -f /var/log/test.log
Mon Oct 24 19:38:00 CST 2016
Mon Oct 24 19:39:00 CST 2016
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的php定时执行任务没有执行,linux中定时任务crontab中的php任务无法执行,求可能的原因...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中引导页面的,设计模式之模板模式
- 下一篇: python挖长尾词 源码,如何用代码挖