簡體   English   中英

在Crontab中使用相對路徑

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM