linux用crontab執行yii指令碼不成功

2021-07-14 06:59:56 字數 779 閱讀 3557

今天遇到乙個問題執行crontab 執行失敗 ,但是直接請求能成功

問了一些大牛為什麼會執行失敗的原因我總結了一下 不知道具體為什麼 

1.crontab是寫到root使用者的,所以crond服務在執行上會讀取 root的$path變數

2.雖然crond裡面寫了絕對路徑 但是 php執行檔案裡可能再次呼叫了php相關環境引數或者命令,這時間 它只會查詢 系統的可執行目錄,並不能繼承你寫的絕對路徑

檢視cron的日誌發現 執行的命令也在程序中 tail -f /var/log/cron

直接執行

/usr/local/webserver/php/bin/php /data/web/***xx/protected/yiic_qa.php xx index

也是可以成功

然後修改了crontab -e 裡面php的執行路徑就成功了

執行失敗的寫法 

0 0  * * * /usr/local/webserver/php/bin/php /data/web/***xx/protected/yiic_qa.php xx index
執行成功的寫法

0 0  * * * /bin/php /data/web/***xx/protected/yiic_qa.php xx index

linux 定時執行 crontab

crontab e 進入乙個vi 編輯介面 在最後一行加上 30 netstat tmp net.log 表示每隔30分就執行netstat命令,並把執行結果存入net.log中。crontab是乙個很方便的在unix linux系統上定時 迴圈 執行某個任務的程式 使用cron服務,用 servi...

Linux下crontab,指令碼自動執行

為了進行指令碼的自動執行,看了下crontab的用法。任務排程的crond常駐命令 crond 是linux用來定期執行程式的命令。當安裝完成作業系統之後,預設便會啟動此任務排程命令。crond命令每分鐘會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。而linux任務排程的工作主...

linux 執行計畫任務crontab

1 進入命令列,敲擊crontab e進入定時任務的編輯模式。2 輸入命令列。eg 0 5 home weblogic oracle middleware user projects domains base domain bin stopweblogic.sh 0 6 home weblogic ...