2013-10-24 10 views
5

このファイルは/etc/cron.dにあります。 Ubuntu 12.04サーバーcronスクリプト変数の拡張があまり良くありませんか?

zurmo_install_path="/var/www/zurmo" 
zurmo_commands_path="$zurmo_install_path/app/protected/commands" 

*/1 * * * * www-data cd /var/www/zurmo/app/protected/commands && ./zurmoc jobManager super EmailArchiving >/dev/null 2>&1 
*/1 * * * * www-data cd "$zurmo_commands_path" && ./zurmoc jobManager super ProcessOutboundEmail >/dev/null 2>&1 

最初の項目は正常に機能し、2番目の項目は機能しません。変数ではなく文字通りのパスを使用するように2行目を変更すると、正常に起動します。しかし、自分でテスト用のcronジョブを書いて変数を使うと、うまくいきます。これは本当のスタンパーです!

答えて

5

WTF ?!二重埋め込み変数が問題です。どうしてこれなの?あなたは以下のcronスクリプトをテストすることができます。

tmpdir="/tmp" 
subdir="$tmpdir/subdir" 

*/1 * * * * root echo $tmpdir $subdir >/tmp/cron.out 

結果のファイル:

/tmp $tmpdir/subdir 
6

はい、これはcrontabの変数の制限ですが。 =符号の右側の文字列は文字通り解釈されます。ドキュメント(man 5 crontab

関連する問題