Техническое задание: Многопоточный сборщик данных с серверов
Цель проекта
Разработать автоматизированное решение для быстрого сбора текстовых данных с большого парка удаленных серверов (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 потоков).