亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何讓Cron調用正確的路徑

如何讓Cron調用正確的路徑

慕森王 2019-07-02 10:35:29
如何讓Cron調用正確的路徑我在試著讓克倫找到正確的路徑。當我從shell運行Python腳本時,腳本運行良好,因為它使用bashrc中設置的路徑,但當我使用cron時,所有路徑都不是bashrc中的。有什么文件可以像bashrc那樣為cron輸入路徑,還是從bashrc調用路徑?對不起,我認為我沒有正確的措辭,我可以得到正確的腳本運行(這意味著在crontab中的腳本的路徑不是問題),只是當腳本運行時,我運行一個構建,這使用了設置在.bashrc..當我登錄時運行腳本時,.bashrc道路被拉進去了。因為cron沒有在shell中運行,所以說它不會拉進.bashrc..有沒有一種無需編寫bash腳本包裝器的方法?
查看完整描述

3 回答

?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

最有可能的是,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規則之前定義了路徑。


查看完整回答
反對 回復 2019-07-02
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

你應該在你的crontab..這是最安全的選擇。
如果您不想這樣做,您可以在您的程序周圍放置一個包裝器腳本,并在其中設置路徑。

G.

01 01 * * * command

變成:

01 01 * * * /full/path/to/command

還有任何從cron應該非常小心它運行的程序,并且可能為PATH變量。

編輯:

如果您不知道要執行的命令在哪里which <command>它會告訴你道路。

EDIT 2:

因此,一旦您的程序運行,它應該做的第一件事是設置PATH以及任何其他所需變量(如:LD_LIBRARY_PATH)到運行腳本所需的值。
基本上,不要考慮如何修改cron環境,使其更適合您的程序/腳本-讓腳本處理給定的環境,在腳本啟動時設置一個合適的環境。


查看完整回答
反對 回復 2019-07-02
  • 3 回答
  • 0 關注
  • 652 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號