私は/ etc/croonに置かれるcronファイルを作ろうとしています。 d。私の問題は、私はこのファイルを更新しないようにしたいので、ファイルからソフトウェアバージョンを動的に取得する方法を探しています。 私は他の変数はほとんどありませんが、問題は$ (cat /software/VERSION)
だと思っています。シェルスクリプトではうまく動作しますが、croonではうまく動作しません。Cronで動的に変数を設定する方法は?
#!/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はシェル(またはPHP)スクリプトを呼び出すことができます。プログラムを置く場所ではない – nogad