1

У нас есть несколько тысяч небольших файлов (2-20 КБ) для копирования между серверами в одну папку для целей резервного копирования. В настоящее время процесс автоматизирован как задание cron и выполняет SCP-копирование каждого файла на удаленный сервер.

Эти файлы в основном основаны на тексте, поэтому я подумал, что SCP -C ... может работать, но я не уверен, есть ли способ пакетировать все эти небольшие файлы (очевидно, что пытаться сжать каждый файл размером 5 КБ бессмысленно).

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

Другим вариантом будет сделать ssh и передать в архив zip и распаковать

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

Ура!

1 ответ1

7

Самый эффективный способ - передавать их через соединение. В Unix самый простой путь:

tar vc source-dir/ | ssh -C target.example.com 'tar xC /target-dir'

Это будет использовать tar для объединения и разделения файлов в один поток, что позволит наиболее эффективно использовать сжатие и пропускную способность TCP по каналу, который вы можете получить из SSH, - с нулевыми накладными расходами пространства для архивирования файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .