Самый быстрый способ копирования небольших файлов по защищенной сети независимо от времени модификации или размера файла.

Самый быстрый способ копирования небольших файлов по защищенной сети независимо от времени модификации или размера файла.

Я хочу синхронизировать файлы в dir1 и dir2 (два разных сервера).

Меня не волнует, отличаются ли размеры файлов или время их изменения.

ПРИМЕР: dir1 содержит file1, file2, file3, file4, а dir2 содержит file2, file3, file5

Я хочу, чтобы file5 скопировался в dir1, а file1 и file4 скопировались в dir2.

Обратите внимание, что размеры file2 отличаются, как и время модификации file3, но мне все равно. Моя сеть также частная, поэтому я не хочу никаких накладных расходов на безопасность.

Что будет быстрее всего:

rsync, scp или cp через монтирование NFS? И, точнее, какая соответствующая командная строка?

решение1

Это в значительной степени академическое, потому что вашим ограничивающим фактором, скорее всего, будет пропускная способность вашей сети. Единственное, за чем действительно нужно следить, это размеры файлов по сравнению с количеством операций — множество мелких файлов приведут к множеству мелких операций копирования.

Но на данный момент сложно сказать наверняка, что будет «быстрее», потому что «это зависит».

Я был бы удивлен, если бы у вас было много проблем с rsync, по той простой причине, что он проверит, нужно ли ему что-то делать, прежде чем копировать. Нет ничего более эффективного, чем не копировать то, что вам не нужно.

Если у вас много маленьких файлов, то вам может подойти tarэтот вариант — tarон предназначен для записи на ленты, поэтому вполне подходит для потоковой передачи структуры каталогов по сети. Например:

tar cvfz - ./path_to_copy | ssh $remotehost "( cd $destination && tar xvfz - )"

Связанный контент