Назад | Перейти на главную страницу

Запланированная передача файлов между серверами

Меня интересует планирование копирования и отправки больших файлов через Интернет с одного сервера на другой. Серверы не находятся в одной сети.

Я не знаю обо всех доступных мне вариантах решения этой проблемы, но несколько протоколов / спецификаций, с которыми я смутно знаком и которые могут быть полезны для этой задачи, - это (1) FTP и (2) bittorrent.

Раньше я использовал Filezilla для ручной отправки больших файлов между группами серверов. У этого конкретного FTP-приложения нет возможностей планирования, поэтому его будет недостаточно для удовлетворения моих требований к планированию. В идеале я хотел бы выполнить эту задачу, используя что-то более программное (не на основе графического интерфейса), а не проприетарное (например, приложение для оплаты).

Я уже использую сценарии Python, которые запускаются по расписанию и выполняют другие операции на группе серверов. В серверы работают под управлением Windows и скрипты автоматизированы через Планировщик задач Windows. Если бы я мог отправлять файлы через FTP с помощью Python, это было бы идеально для меня, потому что я мог бы просто добавить FTP-код в то, что у меня уже есть и запланировано. Однако я ненадолго попытался поиграть с «ftplib» Python и не смог разобраться в этом. Итак, прежде чем я попытаюсь пойти по этому пути, я хотел сначала написать здесь.

Я не уверен, следует ли мне придерживаться подхода на основе FTP, поэтому мне хотелось бы получить несколько рекомендаций по этому поводу. Кроме того, мне все равно, какой язык программирования я использую для этой задачи, хотя я бы предпочел Python, поскольку это кажется естественным выбором, поскольку я имею дело со сценариями на стороне сервера. Я хотел бы получить рекомендации и по этому поводу.

Поскольку это мой первый пост о сбоях сервера, вы, вероятно, можете себе представить, что я в основном не понимаю многих из упомянутых выше тем. Заранее спасибо.

Я бы начал с того, что вам следует избегать FTP и Bit Torrent. Bit Torrent - отличная технология, когда у многих людей есть файл, который вам нужен, и загрузка может быть распределена между ними (например, быстрая загрузка ISO-образа Linux). Я бы не рекомендовал его для простого перехода с сайта A на сайт B.

FTP считается устаревшим, поскольку он небезопасен. Вся информация передается в виде обычного текста и легко перехватывается злоумышленниками, которые могут прослушивать ваш трафик. Вы захотите выполнить эту передачу по безопасному каналу.

Для этого у вас есть несколько вариантов шифрования вашей передачи.

  • SSH-туннели (scp / sftp)
  • VPN

Я бы рекомендовал следующее

  • Загрузить и установить WinSCP на обоих узлах
  • Обзор Документация по сценариям и напишите сценарий для безопасного копирования файлов из точки A в точку B. Вы заметите, что этот сценарий также можно легко запланировать с помощью Планировщика Windows.

Это, наверное, самый простой способ, который я мог бы порекомендовать. Другой вариант - установить VPN с удаленным компьютером и просто написать однострочный скрипт, который копирует файл с вашего локального сервера на удаленный.

Добро пожаловать в SF.

Просто используйте любой FTP-клиент Windows с поддержкой сценариев (или лучше FTPS или SFTP).

Например, как уже предполагается в принятом ответе, WinSCP поддерживает как сценарии, так и FTP / FTPS / SFTP.

Видеть автоматизация передачи файлов на FTP-сервер.

Простой командный файл для загрузки файлов с помощью WinSCP выглядит так:

winscp.com /log=c:\path\ftp.log /command ^
    "open ftp://user:password@example.com/" ^
    "put c:\local\path\* /remote/path/" ^
    "exit"

Вы можете получить командный файл, созданный WinSCP GUI для тебя.


Для планирования просто используйте Планировщик Windows.
Подробнее см. планирование передачи файлов на FTP-сервер.

(Я автор WinSCP)

Для решения на базе Windows я рекомендую изучить TeraCopy (http://codesector.com/teracopy/). Он работает значительно быстрее, чем копия Windows, поддерживает паузу / возобновление и повторную попытку, если соединение разрывается.

Доступны параметры командной строки, поэтому вы можете записать передачи через пакетный файл или Powershell, а затем запланировать их через планировщик задач Windows.

Я тоже не рекомендую FTP. Он не поддерживает брандмауэр, возобновление загрузки может потребовать специальной настройки на стороне FTP-сервера.