[英]Using Relative Paths in Crontab
我試圖在CentOS 6.4的crontab文件中使用相對路徑,這樣就不必一遍又一遍地重復相同的絕對路徑。 在我的crontab文件頂部,位於/etc/crontab
,我有:
SHELL=/bin/bash
PATH=/var/www/html/crons
MAILTO=""
HOME=/
我的每條命令如下所示:
*/2 * * * * root /usr/bin/php "cronfile.php" >> "logs/cronfile_"`date +\%Y\%m\%d`".log"
我期望它將在/var/www/html/crons
目錄中運行cronfile.php
PHP文件,並將其輸出保存到/var/www/html/crons/logs/cronfile.log
。 但是,該文件未在運行,並且未在創建日志文件。
如果我僅運行以下命令,該命令即可正常運行:
/usr/bin/php "cronfile.php" >> "logs/cronfile_"`date +\%Y\%m\%d`".log"
cd
進入/var/www/html/crons
目錄后,從命令行輸入。
請指教,謝謝。
默認情況下,大多數系統上/usr/bin
已經在PATH
,因此您應該能夠從crontab的頂部刪除PATH
聲明。
您的工作在bash shell中運行,因此您可以執行以下操作:
*/2 * * * * root cd /var/www/html/crons && php cronfile.php >> cronfile_`date +\%Y\%m\%d`.log
經過多次試驗和研究,我發現解決方案使用的是HOME=
變量,而不是PATH=
變量,如下所示:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""
HOME=/var/www/html/crons
然后每一行看起來就像:
*/2 * * * * root /usr/bin/php cronfile.php >> logs/cronfile_`date +\%Y\%m\%d`.log
希望這對將來遇到同樣問題的人有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.