我试图让cron调用正确的PATH。当我从外壳运行Python脚本时,脚本运行良好,因为它使用了bashrc中设置的PATH,但是当我使用cron时,bashrc中并未使用所有PATH。是否有一个文件可以像bashrc一样输入cron的PATH或从bashrc调用PATH的方法?
抱歉,我的措词不正确,我可以运行正确的脚本(这意味着crontab中脚本的PATH不是这里的问题),只是该脚本在运行时,我运行了构建,并且使用了在中设置的路径.bashrc。当我登录后运行脚本时,将.bashrc拉入PATH。由于cron并未在shell中运行,所以说它不会拉入.bashrc。有没有一种方法可以不必编写bash脚本包装器而将其引入?
.bashrc
我用过/etc/crontab。我使用vi并在该文件中输入了所需的PATH,然后以root身份运行它。普通的crontab会覆盖您设置的PATH。关于如何执行此操作的很好的教程。
/etc/crontab
vi
系统范围的cron文件如下所示:
This has the username field, as used by /etc/crontab. # /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file. # This file also has a username field, that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 42 6 * * * root run-parts --report /etc/cron.daily 47 6 * * 7 root run-parts --report /etc/cron.weekly 52 6 1 * * root run-parts --report /etc/cron.monthly 01 01 * * 1-5 root python /path/to/file.py