2013-10-24 5 views
5

Aşağıdaki dosya /etc/cron.d dizinindedir. Ubuntu 12.04 Sunucu BTW.cron script değişken genişletme çok iyi değil mi?

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 

İlk öğe düzgün çalışmıyor, ikincisi yok. Değişkeni değil, değişkeni yolunu kullanmak için ikinci satırı değiştirdiğimde, para cezası kesilir. Yine de kendi değişkenlerimi kullanmak için kendi test cron'umu yazdığımda, iyi çalışırlar. Bu gerçek bir tampon!

cevap

5

WTF ?! Çift gömülü bir değişken problemdir, ortaya çıkıyor. Bu neden? Aşağıdaki cron komut dosyası ile test edebilirsiniz:

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

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

çıkan dosyayı:

/tmp $tmpdir/subdir 
6

Evet, bu crontab değişkenlerin bir sınırlamadır. = işaretinin sağındaki dize tam anlamıyla yorumlanır ... Bkz. Dokümanlar (man 5 crontab)