24 python cron environment-variables
我一直在寻找其他堆栈溢出问题,但无法工作.我有一个使用环境变量的python脚本.这个脚本在直接运行时完全按计划运行,但是我想暂时每分钟将它作为一个cron作业运行.
目前在我的cron.d目录中,我有一个名为scrapers的文件,其中包含:
* * * * * root /usr/bin/python3.5 /code/scraper.py
这会运行python脚本,但脚本会失败,因为在脚本中我使用了两个环境变量.
我读过我应该将SHELL =/bin/bash添加到cron文件中,所以我做了但这没有用.
SHELL=/bin/bash
* * * * * root /usr/bin/python3.5 /code/scraper.py
然后我读了
在crontab中,在命令之前添加.$ HOME/.profile文件.
SHELL=/bin/bash
* * * * * . $HOME/.profile; root /usr/bin/python3.5 /code/scraper.py
但这导致cron完全停止运行.将env变量"发送"到cron的最佳方法是什么?
而不是执行~/.profile我所做的全部工作是移动必须在cron作业和具有配置文件的帐户之间共享的变量,然后我将~/.profile在cron作业中和cron作业中同时提供这些变量.
您在问题中显示的最后一次尝试未正确格式化.用户ID应该在调度信息之后,但是您已经在用户ID之前添加了配置文件的源,这肯定无法工作.
这是我在这里测试过的示例设置:
*/1 * * * * someuser . /tmp/t10/setenv && /usr/bin/python /tmp/t10/test.py
我已将其设置为每分钟执行一次以进行测试.替换someuser为有意义的东西./tmp/t10/setenv我使用的脚本有这个:
export FOO=foovalue
export BAR=barvalue
该/tmp/t10/test.py文件有这个:
import os
print os.environ["FOO"], os.environ["BAR"]
我的cron通过电子邮件发送了它运行的脚本的输出.我收到了一封包含此输出的电子邮件
foovalue barvalue
| 归档时间: | 
 | 
| 查看次数: | 12090 次 | 
| 最近记录: |