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

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

從 cron 運行腳本時運行外部程序

從 cron 運行腳本時運行外部程序

Go
LEATH 2022-11-29 14:48:59
我有一個 python 腳本,從命令行執行時可以正常工作。但是當我嘗試從 cron 運行它時,它不起作用。command = "rsync -avHP --delete --bwlimit=800 rsync://mirror.nsc.liu.se/CentOS/7.8.2003/  /home/me/reposync/centos" proc=subprocess.run(command.split(), capture_output=True)cronjob 運行。cronfile 看起來像這樣:PATH=/home/me 40 13 * * * me cd $PATH && ./reposync.py sync 2> /tmp/test.txt但是我從以下位置收到此錯誤(是的,兩次)print(proc.stderr.decode('utf-8')):-avHP: rsync: command not found看來問題與找不到rsync有關,但我不知道該怎么辦。輸出來自/tmp/test.txt:FileNotFoundError: [Errno 2] No such file or directory: 'rsync'我試過添加shell=True到,subprocess.run但它似乎沒有什么不同?;蛘咚粫伋鲈摦惓?,但從 proc 打印 stderr 時我仍然遇到相同的錯誤。我想我可以通過包含絕對路徑來解決它,rsync但感覺這是個壞主意。但我可能錯了。如果這是正確的方法,請解釋原因。
查看完整描述

2 回答

?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

在您的 crontab 中,您正在覆蓋您的$PATH變量,該變量現在僅包含目錄/home/mersync現在找不到您的可執行文件,因為它不在您的主目錄中。

PATH=...通過刪除該行并使用完整路徑調用腳本來更改您的 crontab 條目:

40 13 * * * me /home/me/reposync.py sync 2> /tmp/test.txt


查看完整回答
反對 回復 2022-11-29
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

您可能必須在 crontab 中定義 shell。之前已經問過這個問題。

crontab:python 腳本正在運行但不執行操作系統命令


查看完整回答
反對 回復 2022-11-29
  • 2 回答
  • 0 關注
  • 108 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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