【发布时间】:2017-08-08 04:25:29
【问题描述】:
我正在尝试将 cron 文件放置在 /etc/croon. d。我的问题是我不想让这个文件保持更新,所以我正在寻找一种从文件中动态获取软件版本的方法。
我几乎没有其他变量,但现在我认为问题出在$ (cat /software/VERSION),它在 shell 脚本中运行良好,但在 croon 上运行良好。
#!/bin/bash
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
APPLICATION_ENVIRONMENT=SOME_STRING
VERSION=$(cat /software/VERSION)
HOME=/var/www/scripts/$VERSION/cron
CRON_LOG_DIR=/var/www/scripts/logs
*/2 * * * * root cd $HOME & php -f $HOME/do_something.php $APPLICATION_ENVIRONMENT >> $CRON_LOG/something.log
这是 cron 日志的输出:
(root) CMD (cd $HOME & php -f $HOME/do_something.php $APPLICATION_ENVIRONMENT >> $CRON_LOG/something.log)
(CRON) ERROR chdir failed (/srv/www/tdp/public/$VERSION/backend/cron): No such file or directory
【问题讨论】:
-
cron 可以调用 shell(或 php)脚本。它不是放置编程的地方
标签: php shell cron crontab cron-task