You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python脚本中使用rsync与SSH实现远程树莓派/home目录到本地指定文件夹同步的问题求助

Python脚本中使用rsync与SSH实现远程树莓派/home目录到本地指定文件夹同步的问题求助

我最近在折腾树莓派之间的目录同步需求:想把远程树莓派(PiTwo)的/home文件夹,通过rsync+SSH同步到本地树莓派(PiZero)的指定目录里。本地PiZero外接了一块硬盘,用Samba共享着,目标路径是/mnt/BigMac/BigMac/PiBackups/PiTwo

我已经配置好了SSH密钥对,在终端里直接从PiTwo SSH连接PiZero完全没问题,但用Python脚本调用rsync的时候,却总是卡在密钥认证这一步,没法成功同步。下面是我试过的两种方法和对应的错误信息,希望能有人帮我找出正确的命令语法。

第一种尝试的代码与错误

我写了这样的Python代码:

import os

os.system('rsync -auvz -e "ssh -i /home/PiTwo/.ssh/id_rsa" /home me@myhomeserver.ddns.net:/mnt/BigMac/BigMac/PiBackups/PiTwo/home')

执行后弹出了一堆错误:

ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory
Permission denied, please try again.
ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory
Permission denied, please try again.
ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory
me@myhomeserver.ddns.net: Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(228) [sender=3.2.3]

第二种尝试的代码与错误

后来我换了一种写法:

import os

os.system('rsync -r -a ssh me@myhomeserver.ddns.net:/mnt/BigMac/BigMac/PiBackups/PiTwo /home')

这次直接报了语法错误:

Unexpected remote arg: me@myhomeserver.ddns.net:/mnt/BigMac/BigMac/PiBackups/PiTwo
rsync error: syntax or usage error (code 1) at main.c(1499) [sender=3.2.3]

实在搞不定了,有没有懂的朋友指点一下?

备注:内容来源于stack exchange,提问作者Ken

火山引擎 最新活动