cron脚本变量扩展不太好?

时间:2013-10-24 20:48:42

标签: cron

以下文件位于/etc/cron.d中。 Ubuntu 12.04服务器BTW。

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作业来使用变量时,它们可以正常工作。这是一个真正的难题!

2 个答案:

答案 0 :(得分:9)

是的,这是crontab变量的限制。 =符号右侧的字符串按字面解释...请参阅文档(man 5 crontab

答案 1 :(得分:4)

WTF?事实证明,双重嵌入变量就是问题所在。为什么是这样?您可以使用以下cron脚本进行测试:

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

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

生成的文件:

/tmp $tmpdir/subdir