我有一个 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
但感觉这是个坏主意。但我可能错了。如果这是正确的方法,请解释原因。
慕桂英3389331
杨__羊羊
相关分类