Python子进程,将rsync与ssh密钥文件一起使用,方法Call出错

问题描述 投票:0回答:1

我已经有了此命令来同步来自远程服务器的数据文件,并且我正在使用ssh密钥文件作为身份验证方法。我在bash中的原始命令是:

rsync -az -e 'ssh -i my_key.pem' [email protected]:/export/home/admin/monitor_dir/monitor_srv1.dat .

而且效果很好,它可以传输文件,但是当我尝试使用Python子进程库方法调用时,可以从该python脚本运行bash命令。

#!/usr/bin/python 
import subprocess

server = ['192.168.0.10', '/export/home/admin/monitor_dir/', 'srv1']

subprocess.call(['rsync', '-az', '-e', '\'ssh', '-i', 'my_key.pem\'', 'admin@{0}:{1}monitor_{2}.dat'.format(server[0],server[1],server[2]), '.'])

这是显示的错误:

rsync: link_stat "/Users/works/LUIS/scripts_py/my_key.pem'" failed: No such file or directory (2)

rsync: link_stat "/Users/works/LUIS/scripts_py/[email protected]:/export/home/admin/monitor_dir/monitor_srv1.dat" failed: No such file or directory (2)

rsync error: some files could not be transferred (code 23) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-51/rsync/main.c(996) [sender=2.6.9]

我也尝试过运行并调用方法,但是我不知道我做错了什么,或者即使有另一种方法可以使用python执行rsync命令,]

我正在使用:

-Python 3.5.0
-GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin16)
-rsync  version 2.6.9  protocol version 29

我已经有了此命令来同步来自远程服务器的数据文件,并且我正在使用ssh密钥文件作为身份验证方法。我在bash中的原始命令是:rsync -az -e'ssh -i my_key.pem'admin @ 192 ....

python-3.x ssh subprocess rsync
1个回答
0
投票
rsync -az -e 'ssh -i my_key.pem' ...
© www.soinside.com 2019 - 2024. All rights reserved.