linux - 如何使用与我在 cron 作业中使用的环境相同的环境?

标签 linux bash unix cron redhat

看了很多关于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

最佳答案

cron 有许多怪癖和问题,它对环境变量的处理是一个值得注意的问题。您可以尝试通过重新导入您的环境来解决该问题,但如果可能,更好的选择是完全避免 cron。对于许多用例,at command工作得更好,并且在 您的 环境中运行其他功能,而不是 cron 的精简版。

更多信息:

关于linux - 如何使用与我在 cron 作业中使用的环境相同的环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39869647/

相关文章:

c - 如何解决这个linux定时器错误

linux - 在 bash pfsense shell 中自动输入以访问真正的 shell

C++:文件打开调用失败

linux - 查找文件启动进程

linux - KVM guest 操作系统启动错误

bash - 用文件递归地触摸文件

Bash 通过参数选择数组元素的位置

mysql - 为什么我的 Slave 没有在 MYSQL 上启动?

bash - 通过添加环境变量执行 Shell 脚本

linux - 如何使用名称而不是 IP 地址连接到 docker 容器?