我已经有了此命令来同步来自远程服务器的数据文件,并且我正在使用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 ....
rsync -az -e 'ssh -i my_key.pem' ...