открыть (и поддерживать) удаленное соединение с питоном - PullRequest
1 голос
/ 13 октября 2011

Я использую Python для передачи (через scp) и базы данных большого количества файлов.Один из серверов, на которые я передаю файлы, имеет странные правила конфигурации ssh, чтобы остановить слишком много запросов ssh из одного места.Результатом этого является то, что мой скрипт на Python, который в настоящее время просматривает файлы и копирует их через os.system, зависает после передачи нескольких файлов.

Есть ли способ, с помощью которого Python может открыть ssh или другой файл?подключение к серверу, чтобы для каждого передаваемого файла не требовался экземпляр входа по ssh?

Спасибо,

Ответы [ 3 ]

2 голосов
/ 13 октября 2011

Возможно, вы захотите заглянуть в модуль paramiko .

Существует Копирование файлов по SSH с использованием рецепта paramiko с его использованием, которое может оказаться полезным.

1 голос
/ 13 октября 2011

Проверьте SFTP в модуле Python Paramiko . Вы можете сделать несколько передач файлов в одном сеансе.

0 голосов
/ 13 октября 2011

Это не совсем Python, но, вероятно, зависит от того, какие библиотеки вы можете использовать.

Вам нужен способ отправки файлов через одно соединение. (Возможно, это лучше подходит для superuser или severfault.com.)

  • Создать tarfile локально, загрузить его и распаковать в target?
    • Может быть, вы могли бы даже запустить tar xz удаленно и загрузить файл на стандартный ввод через SSH? (Как сказал в комментарии Майкл Диллон, Python может создавать tar-файл на лету ...)
  • Является ли SFTP опцией?
  • Rsync over SSH?
  • Twisted - это асинхронная библиотека, которая может обрабатывать множество сокетов / соединений одновременно. Вероятно, излишне для вашего решения,

Надеюсь, это поможет.

...