【发布时间】:2017-10-27 04:39:58
【问题描述】:
我有一个这样的 CRON 作业集:
0 0 * * * cd /home/path/to/script && sudo -u myuser ./thescript.sh
此脚本构建一个 docker 镜像,运行一个简单的 python 应用程序,将测试验证报告转储到文件中。当我在终端中运行此脚本时,一切正常(生成的文件位于 /home/myuser 中)。不幸的是,当我运行 CRON 作业时,该文件已创建,但为空。它必须与拥有 CRON 作业的 Root 有关,但我不知道如何完成它
有什么线索吗?
【问题讨论】:
-
如果您使用
sudo crontab -e,root 将拥有 cron 并使用这些权限执行它。 -- 那就是说root应该能够写入任何东西,即使在主目录中也是如此。这似乎是 .sh 文件的问题...您可以发布创建文件但其中没有任何内容的违规代码吗? -
会不会有路径或环境问题?即link你有无密码的sudo吗?
-
@boethius,你是对的,经过调查,这与 python 脚本无法识别我的环境变量以及脚本失败有关。关于如何通过 Cron 共享这些变量的任何线索?
-
早上 - 您可以尝试将 bash 设置复制到 cron 文件中,在您计划的作业之上(但随着时间的推移可能会不同步)