2013-10-24 32 views
5

以下文件位於/etc/cron.d目錄下。 Ubuntu 12.04服務器BTW。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 

的第一項打完細,第二不。一旦我改變第二行來使用文字路徑而不是變量,它會很好地啓動。然而,當我編寫我自己的測試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