原谅我的无知,但我对shell脚本和在Linux中使用环境变量有些新意.
我有一个执行MySQL数据库备份的脚本.我在脚本中有以下几行用于记录数据库的成功转储:
output=`date; echo "Database export successful from $ENV_HOSTNAME to $BACKUP_HOSTNAME"`
echo $output >> /var/log/errorLog
我在/ etc / profile中定义了变量(ENV_HOSTNAME和BACKUP_HOSTNAME),如下所示:
export ENV_HOSTNAME="env1.somename.com"
export BACKUP_HOSTNAME="env2.somename.com"
当我调用printenv时,我可以看到列出的这些变量,并且当我运行此脚本(以root身份)时,变量值正确显示在日志文件中.但是,当我将此脚本设置为使用cron运行时,变量值不会出现在日志文件中.我知道脚本运行是因为我可以看到日期和字符串的其余部分,但变量是空白的:
Fri Nov 6 22:31:05 EST 2009 Database export successful from to
我确定我在这里遗漏了一些简单的东西,所以请提前感谢您的帮助.
解决方法:
有你的问题:cron没有运行/ etc / profile.
cron只用很少的环境设置启动;你需要的任何其他东西,你必须自己设置,所以习惯上让cron调用脚本来处理设置,然后是主要动作.
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!