如何让CRON调用正确的PATH [英] How to get CRON to call in the correct PATHs
问题描述
我想让cron在正确的PATH中调用。当我从shell运行一个Python脚本时,脚本运行良好,因为它使用在bashrc中设置的PATH,但是当我使用cron所有的PATH不从bashrc使用。有没有文件,我可以输入PATHs为cron像bashrc或一个方法来调用从bashrc的PATHs?
I'm trying to get cron to call in the correct PATHs. When I run a Python script from shell the script runs fine as it uses the PATHs set in bashrc but when I use cron all the PATHs are not used from bashrc. Is there a file I can enter the PATHs into for cron like bashrc or a way to call the PATHs from bashrc?
对不起,我不认为我的措辞这个正确,我可以得到正确的脚本运行(意味着crontab中的脚本的PATH不是这里的问题),它只是当该脚本运行时我运行一个构建,这使用在 .bashrc中设置的PATH
。当我登录时运行脚本, .bashrc
PATHs被拉入。因为cron不运行在shell中, code> .bashrc 。
Sorry I don't think I worded this correctly, I can get the correct script to run (meaning the PATH to the script in crontab is not the problem here), it's just when that script is running I run a build and this uses the PATHs set in .bashrc
. When I run the script when I'm logged in, the .bashrc
PATHs are pulled in. Since cron doesn't run in a shell per say it does not pull in .bashrc
. Is there a way of pulling this in without having to write a bash script wrapper?
推荐答案
我使用了 / etc / crontab
。我使用 vi
,并在我需要的PATH中输入这个文件,并以root身份运行。正常的crontab会覆盖您设置的PATH。有关如何执行此操作的一个很好的教程是: http:// unixhelp。 ed.ac.uk/CGI/man-cgi?crontab+5 。
I used /etc/crontab
. I used vi
and entered in the PATHs I needed into this file and ran it as root. The normal crontab overwrites PATHs that you have set up. A good tutorial on how to do this is: http://unixhelp.ed.ac.uk/CGI/man-cgi?crontab+5.
系统范围的cron文件如下所示:
The system wide cron file looks like this:
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
这篇关于如何让CRON调用正确的PATH的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!