Как `УПП` отличаются от `синхронизировать`?


статьи о настройка призрак блогов что надо использовать scp скопировать файл с моего локального компьютера на удаленный сервер:

scp -r ghost-0.3 root@*your-server-ip*:~/

однако, Railscast 339: Шеф-Повар Соло Основы использует scp для копирования в обратном направлении (с удаленного сервера на локальную машину):

scp -r root@178.xxx.xxx.xxx:/var/chef .

в том же Railscast, когда автор хочет скопировать файлы на удаленный сервер (в том же направлении, что и первый пример), он использует rsync:

rsync -r . root@178.xxx.xxx.xxx:/var/chef

зачем использовать rsync команда if scp копировать в обоих направлениях? Как это scp отличается от rsync?

7 168

7 ответов:

основное различие между этими инструментами состоит в том, как они копируют файлы.

scp в основном читает файл и записывает его в пункт назначения. Он выполняет простую линейную копию, локально или по сети.

rsync также копирует файлы локально или по сети. Но он использует специальный алгоритм передачи Дельта и несколько оптимизаций, чтобы сделать работу намного быстрее. Рассмотрим вызов.

rsync A host:B
  • rsync проверит размеры файлов и временные метки модификации обоих A и B, и пропустить любую дальнейшую обработку, если они совпадают.

  • если файл назначения B уже существует, алгоритм Дельта передачи будет убедиться, что только различия между A и B отправляются по проводу.

  • rsync будет запись данных во временный файл T, а затем заменить целевой файл B С T чтобы обновление выглядело "атомарным" для процессов, которые могут использовать B.

еще одно различие между ними касается вызова. rsync имеет огромное количество параметров командной строки, что позволяет пользователю точно настроить свое поведение. Он поддерживает сложные правила фильтрации, работает в пакетном режиме, режиме демона и т. д. scp только несколько переключателей.

в общем, используйте scp для повседневных задач. Команды, которые вы вводите время от времени в своей интерактивной оболочке. Это проще в использовании, и в этих случаях rsync оптимизация не поможет.

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

кроме того, при работе с большими файлами, использовать rsync С . Если передача прервана, вы можете возобновить ее там, где она остановилась, повторно выпустив команду. Смотрите Сида кшатрия ответ.

rysnc может быть полезен для работы на медленных и ненадежных соединений. Поэтому, если ваша загрузка прерывается в середине большого файла, rysnc сможет продолжить с того места, где он остановился при повторном вызове.

использовать rsync -vP username@host:/path/to/file .

параметр-P сохраняет частично загруженные файлы, а также показывает прогресс.

как обычно проверить man rsync

есть разница для меня, что scp всегда шифруется с помощью ssh (secure shell), в то время как rsync Не обязательно шифроваться. Более конкретно, rsync не выполняет никакого шифрования сам по себе; он по-прежнему способен использовать другие механизмы (например, ssh) для выполнения шифрования.

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

зацените post, когда rsync шифрование на.

разница ч / б scp и rsync по разным параметрам

1. Производительность по задержке

  • scp: scp относительно меньше оптимизирует и скорость

  • rsync: rsync сравнительно больше оптимизирует и ускоряет

https://www.disk91.com/2014/technology/networks/compare-performance-of-different-file-transfer-protocol-over-latency/

2. Обработка прерываний:

  • scp: инструмент командной строки scp не может возобновить прерванные загрузки из потерянных сетевых подключений

  • rsync: если выше сеанс rsync сам прерывается, вы можете возобновить его столько раз, сколько вы хотите, введя ту же команду. rsync автоматически перезапустит передачу там, где она осталась выключено.

http://ask.xmodulo.com/resume-large-scp-file-transfer-linux.html

3. Пример Команды

  • scp

    $ scp source_file_path destination_file_path

  • rsync

    $ cd / path/to / directory/of / partially_downloaded_file $ rsync-P --rsh=ssh userid@remotehost.com:bigdata.tgz ./ bigdata.tgz

в Параметр"- P "совпадает с параметром" --partial --progress", что позволяет rsync работать с частично загруженными файлами. Параметр "--rsh=ssh " указывает rsync использовать ssh в качестве удаленной оболочки.

SCP:

4. Безопасность :

scp более безопасен, но когда используется rsync --rsh=ssh, то rsync будет таким же безопасным

человек документ, чтобы узнать больше:

scp : http://www.manpagez.com/man/1/scp/

rsync:http://www.manpagez.com/man/1/rsync/

enter image description here

одна из основных особенностей rsync over scp (помимо Дельта-алгоритма) заключается в том, что он автоматически проверка Если переданный файл был передан правильно. Scp не будет этого делать, что иногда может привести к повреждению при передаче больших файлов. Так что в целом rsync-это копия с гарантией.

посмотреть (в CentOS) странице, обратите внимание, в конце --checksum описание:

обратите внимание, что rsync всегда проверяет, что каждый переданный файл правильно восстановлено на принимающей стороне путем проверки целого файла контрольная сумма, которая генерируется при передаче файла, но которая автоматическая проверка после передачи не имеет ничего общего с этим опция перед передачей "нужно ли обновлять этот файл?" проверять.

лучше думать в практическом контексте. В нашей команде, мы используем rsync -aP чтобы заменить плохой хост cassandra в нашем кластере. Мы не можем сделать это с помощью scp (медленное и без сохранения прогресса).

scp лучше для один.
или сочетание tar & сжатия для небольших наборов данных как и деревья исходного кода с небольшими ресурсами ( ie: изображения, sqlite etc).


пока, когда вы начинаете иметь дело с больше объемы говорят:
  • папки мультимедиа (40 ГБ)
  • резервные копии базы данных (28 GB)
  • MP3 библиотеки (100 ГБ)

это будет непрактично, чтобы построить zip / tar.ГЗ файл для передачи с scp в этот момент к физическая ограничения на хостинге.

в качестве упражнения, вы можете сделать некоторые гимнастика как трубопроводов tar на ssh и перенаправление результатов в remote. (сохранение необходимости строить своп или временный клон ака zip или tar.gz)

,

rsync упростить этот процесс и позволяет передавать сведения без использования дополнительного дискового пространства.

и,

непрерывный (cron?) обновления используют минимальные изменения против полной скорости клонированных копий больших миграций данных с течением времени.

tl; dr
scp ==небольшой масштаб (с возможностью создания сжатых файлов на одном диске)
rsync ==большой масштаб (С необходимостью резервного копирования больших объемов данных и не осталось)