我想从不同的服务器导入数据,我使用了pysftp,但是当我对服务器执行ssh,然后运行脚本时,它就工作了。
如果可能的话,我想使用fabric或pysftp同时从不同的服务器导入数据。我已经准备好了织物的文档,但没有找到方法。等待你的建议或相同的例子。
*
from fabric.api import*
filename = 'path/ip_address.txt'
while True:
with open(filename) as f:
data = f.readlines()
env.hosts= data
env.user= "usr"
env.password="pwd"
get("~/path/*.xml","localpath/pm_xml")
使用这个脚本我得到了一个错误消息
找不到主机。请为连接指定(单个)主机字符串!
当我使用paramiko这个脚本时:
import paramiko
import os
filename = "/home/test/Desktop/ip_address.txt"
with open(filename) as f:
data = f.readlines()
while True:
for ipAddr in data:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ipAddr,username="usr",password="pwd")
sftp = ssh.open_sftp()
for element in sftp.listdir("server_path"):
if element.endswith(".xml"):
try:
sftp.get("server_path"+element,"/home/test/Documents/pm_xml/"+element)
except:
print(Exception)
sftp.close()
ssh.close()
使用paramiko,我每秒只能得到一个文件,但每台服务器每分钟生成100个文件。
我的
ip地址.txt
包含ip地址:
11.11.11.11
22.22.22.22
33.33.33.33
建议同时访问不同的服务器并快速导入数据。