Быстро импортируйте данные, используя ткань или парамико - PullRequest
0 голосов
/ 10 сентября 2018

Я хотел бы импортировать данные с разных серверов, я использовал 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 файлов каждую минуту. my ip_address.txt содержит IP-адрес:

11.11.11.11
22.22.22.22
33.33.33.33 

Любые предложения для одновременного получения доступа к другому серверу и быстрого импорта данных.

...