cron脚本变量扩展不是很好吗?
下面的文件位于/etc/cron.d中。Ubuntu 12.04服务器顺便说一句cron脚本变量扩展不是很好吗?,cron,Cron,下面的文件位于/etc/cron.d中。Ubuntu 12.04服务器顺便说一句 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 EmailAr
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作业来使用变量时,它们工作正常。这真是个难缠的家伙 WTF?!事实证明,一个双重嵌入变量就是问题所在。为什么会这样?您可以使用以下cron脚本进行测试:
tmpdir="/tmp"
subdir="$tmpdir/subdir"
*/1 * * * * root echo $tmpdir $subdir >/tmp/cron.out
生成的文件:
/tmp $tmpdir/subdir
是的,这是crontab变量的一个限制。
=
符号右侧的字符串按字面解释。。。参见文档(man 5 crontab
)