Я надеюсь , что это не считается , как вопрос без реального ответа, так как я не могу найти хороший повод , чтобы использовать cp(1)
более rsync(1)
практически во всех обстоятельствах. Если один , как правило , в пользу rsync
более cp
? Есть ли хорошие рекомендации по их использованию?
rsync
: Передает различия, он может использовать сжатие, он может использоваться удаленно (и безопасно), он может быть перезапущен несмотря на прерывание, даже во время передачи одного большого файла. 'cp
: Возможно, это просто проще в использовании? Это быстрее, чем rsync?
Ответы:
cp
является частью coreutils, поэтому он присутствует везде. Кроме того, он в первую очередь предназначен для копирования файлов внутри одного компьютера.rsync
не входит в coreutils, его нет даже в среде по умолчанию. Кроме того, он был предназначен в первую очередь для передачи файлов по сети. Такжеrsync
имеет больше зависимостей по сравнению с coreutils, однако это различие не имеет большого смысла.PS: Кстати, использование процессора все еще имеет значение для встроенных систем.
источник
Основная причина, по которой вы не хотите использовать
rsync
каждую операцию копирования, заключается в том, чтоrsync
она требует дополнительных затрат. Перед началом передачи данныхrsync
сканируются все файлы. Затем перед каждым файлом производится сравнение. Эти издержки не являются незначительными, даже с быстрыми процессорами, доступными в 2012 году. Я выполняю такой тип передач постоянно, и на серверах довольно приличного размера, как только вы начинаете работать с концертами данных, накладные расходы могут занимать много времени.Я не говорю, не используйте
rsync
, совсем не используйте вrsync
любое время , когда вы можете сэкономить время передачи. Только не используйте,rsync
когдаcp
можете сделать то же самое.Что я обычно делаю, сначала перенесу данные, используя обычные методы копирования. Затем
rsync
для последующих изменений, когда эти различия могут быть использованы.источник
Я ожидал
cp
бы использовать меньше ЦП при локальном копировании, потому что он не использует различий, тогда какrsync
может уменьшить количество записей при использовании различий. Сжатия следует избегать локально, потому что вы все равно должны читать и записывать весь файл / diff, и это требует дополнительных вычислений.источник
rsync
предпочтение. Но когда они не различаются,rsync
это только приносит накладные расходы без дополнительной выгоды.rsync
издержки ввода-вывода в два раза для двух идентичных файлов по сравнению со слепымиcp
: изменить время модификации. Вы должны дать,--size-only
чтобы исправить это. Единственный другой способ увидеть это -rsync
полагаться на контрольные суммы файловой системы, но для большинства файловых систем они не очень хорошие статистические предикторы идентичности.Совершенно независимо от накладных расходов в случае больших или несуществующих различий,
rsync
похоже, нет эквивалентаcp --reflink=always
, который может сохранить огромное количество данных при копировании в файловой системе, которая его поддерживает (он создает копии при записи, поэтому данные, общие между оригиналом и копией (а это, конечно, изначально все), хранятся только один раз).rsync
Однако лучше при обновлении копий CoW, используя--inplace
.источник