
У меня есть несколько серверов, на которых собираются различные программы для разных систем.
После завершения сборки она архивируется в один файл и сжимается, затем md5sum
из файла создается. Один сервер может собрать несколько разных версий, что приведет к нескольким архивным файлам и файлам archive.md5.
Наконец, на различных других серверах запускается скрипт, который проверяет md5sum
s каждого файла, сравнивает их с локальными md5sum
s и, если они отличаются, загружает и распаковывает обновленную сборку.
В настоящее время md5sum
проверка происходит путем сравнения md5 для каждой сборки.scp [email protected] /path/to/builds/*.md5 .
99% времени выполнения скрипта — это scp
(хотя это занимает всего несколько секунд). Я пытаюсь максимально оптимизировать эту передачу данных. Запрос поступает с серверов, которые внесены в белый список (или могут быть внесены, если у решения есть собственный порт), и сами данные в любом случае бессмысленны, поэтому мне не нужно беспокоиться ни об аутентификации, ни о шифровании. Я считаю, что это scp
использовалось из соображений удобства моим предшественником, когда было гораздо меньше серверов, версий и сборок.
У меня есть полный root-доступ ко всем серверам, поэтому я могу делать все, что захочу. Какой самый быстрый способ получить данные .md5
с удаленного сервера? Это могут быть либо сами файлы, либо содержимое файлов (например, из cat /path/to/builds/*.md5
).
Спасибо!
решение1
Мне на ум приходят следующие варианты:
- Экспортируйте каталог с файлами MD5 через NFS или SMB (Samba) и смонтируйте на той машине, на которой вы выполняете сравнения.
- Запустите небольшой веб-сервер, например, lighttpd, для обслуживания файлов по HTTP.
- Подумайте, как ускорить SCP — это не должно занять «несколько секунд», если только у вас нет проблем с DNS или медленной аутентификации по какой-либо причине.
Предполагается, что вы делаете это в локальной сети, а не через Интернет, в противном случае существуют дополнительные соображения безопасности, даже если файлы «бессмысленны».