定時任務有執行記錄但是執行沒有結果
1.先用/var/log/cron 命令觀察是否有這條定時任務的執行記錄
2.如果有的話可以記錄定時任務的執行結果
* * * * * /data/test.php >> /data/log.log 2>&1 該路徑為伺服器絕對路徑
如果有定時任務有報錯的話可以檢視報錯資訊修改程式碼
這裡的報錯資訊是Exception: Zend Extension /data/test.php does not exist
定時任務程式碼為
#!/usr/local/php/bin/php -q <?php $filename = 'file.txt'; if (is_writable($filename第一行為伺服器PHP可執行檔案路徑 如果不請吃可以用which php去檢視)) { echo file_put_contents($filename, "This is another something.", FILE_APPEND); } else { echo "檔案 $filename 不可寫"; }
4.這麼寫感覺是沒問題的但是還是有上邊的那個報錯資訊,並且檔案也不執行,從網上查了一天然後邊試邊改才知道原來是檔案在伺服器編碼的問題 ,我是window環境上傳檔案到linux 所以檔案編碼需要修改 , 可以看下檔案編碼 vi檔案開啟,:set ff
可以看到檔案編碼為Fileformat=dos,因此要修改為nuix , 用set fileformat=nuix命令,回車,這時出現一個奇怪問題,有個報錯
起初以為不能修改,網上查了一圈也沒查到啥,後來就退出儲存了,然後發現定時任務執行結果沒問題了。真是不知道箇中緣由啊 ,耗費我一天時間。如果有哪位大神看到這篇文章,還請能夠指點迷津,本人小白一枚。
5.還有一種簡便的方法也是從網上看到的 可以用crontab 的wget方法 直接訪問連結的形式實現。比上邊的方法簡單粗暴,
程式碼:
* * * * * wget -t 1 -T 0 -q --spider "https://www.baidu.com" >> /data/crontablog.log 2>&1
-t 引數是請求失敗後重試次數 -T 連線時間(0不會超時) -q安靜模式 (不輸出訊息)
這種連結訪問的話還是需要加上一定的驗證步驟的 這需要結合業務了 具體問題具體定吧
以上 春手打