Техническое задание: Многопоточный сборщик данных с серверов

Цель проекта

Разработать автоматизированное решение для быстрого сбора текстовых данных с большого парка удаленных серверов (100+ единиц) через RDP-подключение, их объединения и очистки исходных файлов.

Основные функциональные требования

  • Конфигурация через файл: Программа должна считывать список серверов из текстового файла (.txt). Каждая строка должна содержать данные в формате: ip:port;login:pass.
  • Многопоточное подключение: Реализация одновременного подключения к серверам с использованием 1-5 рабочих потоков для достижения требуемой скорости.
  • Скачивание файлов: Автоматическое подключение к каждому серверу из списка и загрузка текстовых файлов из трех заранее определенных директорий. Пути к папкам на всех серверах идентичны.
  • Консолидация данных: Все содержимое скачанных текстовых файлов (примерно 300 файлов при 100 серверах) должно быть собрано в один итоговый файл.
  • Очистка исходных файлов: После успешного сбора данных, исходные текстовые файлы на серверах должны быть перезаписаны (очищены).
  • Производительность: Обработка 100 серверов должна занимать не более 2-3 минут. Общий объем данных не превышает 1 МБ.

Технические детали

  • Протокол подключения к серверам: RDP (Remote Desktop Protocol).
  • Механизм передачи/скачивания файлов: SFTP или аналогичный безопасный протокол поверх установленного RDP-соединения.
  • Язык программирования: на усмотрение исполнителя, с учетом требований к скорости и надежности.
  • Результат работы: единый текстовый файл со всей собранной информацией.

Критерии приемки

  • Корректное подключение ко всем серверам из списка.
  • Полное скачивание файлов из трех заданных путей на каждом сервере.
  • Безупречное объединение данных в один файл без потерь.
  • Очистка (перезапись пустым содержимым) исходных файлов на серверах после успешного копирования.
  • Соблюдение требований по скорости работы (2-3 минуты на 100 серверов).
  • Устойчивая работа в многопоточном режиме (1-5 потоков).