【发布时间】:2017-02-13 15:26:48
【问题描述】:
我已经阅读了很多关于 crontab 和 env 的线程,但我仍然无法正确设置。
我用过
env > env_setting
因为我需要使用相同的env设置和bash来运行,所以在crontab -e
*/1 * * * * env - `cat /path/to/env_setting` /bin/bash ; /bin/bash /path/to/program.sh
但它不起作用。如何使用与我在 cron 作业中使用的环境相同的环境?
P.S 我正在使用 Red Hat。
编辑:
我在program.sh中尝试了以下内容@
env >> temp.log 2>&1
env - `cat /path/to/env_setting`
env >> temp.log 2>&1
但temp.log 中的 2 个env 输出完全相同。没有使用env_setting
【问题讨论】:
-
env cat - ... /bin/bash是一个进程。;表示“开始一个新进程”。总体上可能有一个更好的解决方案,但请尝试env - 'cat /path/to/env_settings' /bin/bash /path/to/prog.sh,其中'字符确实是后退,或者您不能将“现代”cmd-sub 与$(.cmd-sub...)一起使用?祝你好运。 -
其实在发帖之前我已经尝试过你的方法,但是没有成功。
-
所以你不能在
./program.sh的顶部添加一行:. /path/to/env(在脚本中获取文件?)。祝你好运。 -
试过了。我在上面添加了详细信息。不工作。
-
我的意思是每个环境一次,与任何脚本分开,当你拥有你想要的环境时,在命令行上运行
set > env.file;然后在所有脚本的顶部添加. /path/to/env.file。我看不出你对 `env >> temp.log 2>&1' 等有什么期望。但这不会是我第一次错过某件事的重点 ;-) ...得走了。可能要到明天才能回来。祝你好运。
标签: linux bash unix cron redhat