我使用 cron 已经很多年了。为了一次加载所有环境变量,我在 crontab 中获取的专用文件(通常但不总是 .bashrc)中定义它们:
* * * * * (. /home/me/my_environment_variables.sh; my_script.sh)
不幸的是,这个技巧无法在我最近被要求迁移到的 debian wheezy 服务器上运行。更具体地说,所有发生的情况就好像源命令被忽略一样:执行 my_script.sh 但环境变量为空,因此脚本的结果不是预期的结果。我实在不明白这个问题。一切都在我的 ubuntu 上完美运行
安装的 cron 软件包是“3.0pl1-124”。
您知道如何解决或绕过这个问题吗?
PS:以这种方式定义环境变量似乎有效:
* * * * * (export OPTOS_HOME=/home/me/src/optos; my_script.sh)
然而,以这种方式定义多个环境变量并不方便。
答案1
.
是一个内部 shell 命令。检查 cron 使用的 shell(默认为 /bin/sh)。
替代解决方案是创建一个包装脚本并将这些命令放入其中。它肯定会起作用。