如何让Cron调用正确的路径

如何让Cron调用正确的路径

我在试着让克伦找到正确的路径。当我从shell运行Python脚本时,脚本运行良好,因为它使用bashrc中设置的路径,但当我使用cron时,所有路径都不是bashrc中的。有什么文件可以像bashrc那样为cron输入路径,还是从bashrc调用路径?

对不起,我认为我没有正确的措辞,我可以得到正确的脚本运行(这意味着在crontab中的脚本的路径不是问题),只是当脚本运行时,我运行一个构建,这使用了设置在.bashrc..当我登录时运行脚本时,.bashrc道路被拉进去了。因为cron没有在shell中运行,所以说它不会拉进.bashrc..有没有一种无需编写bash脚本包装器的方法?


慕森王
浏览 627回答 3
3回答

蝴蝶不菲

最有可能的是,cron运行在一个非常稀疏的环境中。通过附加一个转储的虚拟作业来检查cron使用的环境变量env这样的文件:* * * * * env > env_dump.txt与env在正常的shell会话中。您可以在crontab顶部定义您自己的环境变量到本地crontab。下面是一个快速修复程序$PATH到当前crontab:# echo PATH=$PATH > tmp.cron # echo >> tmp.cron # crontab -l >> tmp.cron # crontab tmp.cron生成的crontab看起来类似于chrissygormley的答案,在crontab规则之前定义了路径。

绝地无双

你应该在你的crontab..这是最安全的选择。如果您不想这样做,您可以在您的程序周围放置一个包装器脚本,并在其中设置路径。G.01&nbsp;01&nbsp;*&nbsp;*&nbsp;*&nbsp;command变成:01&nbsp;01&nbsp;*&nbsp;*&nbsp;*&nbsp;/full/path/to/command还有任何从cron应该非常小心它运行的程序,并且可能为PATH变量。编辑:如果您不知道要执行的命令在哪里which <command>它会告诉你道路。EDIT 2:因此,一旦您的程序运行,它应该做的第一件事是设置PATH以及任何其他所需变量(如:LD_LIBRARY_PATH)到运行脚本所需的值。基本上,不要考虑如何修改cron环境,使其更适合您的程序/脚本-让脚本处理给定的环境,在脚本启动时设置一个合适的环境。
打开App,查看更多内容
随时随地看视频慕课网APP