rsync over SSH

Перевод: RSync over SSH

rsync over ssh rsync over SSH

Я тут недавно мигрировал старые заметки по rsync на основном сайте Unix Tutorial, и вспомнил: вот про копирование rsync с помощью ssh я так ещё и не рассказывал.

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

Зачем Нужна Синхронизация rsync Через SSH

Подавляющее большинство современных Linux систем поддерживают протокол удалённого доступа SSH. И все более-менее современные реализации поддерживают rsync через SSH, ведь это даёт вам лучшее из двух миров: можно сихнронизировать удалённые сервера И ПРИ ЭТОМ передача данных будет надёжно защищена стандартными методами SSH.

В дополнение ко всему этому, использование транспорта SSH для rsync даёт ещё два преимущества по сравнению с протоколом rsync:

  1. На удалённом сервере не нужно запускать никаких демонов rsyncd
  2. Как следствие из предыдущего пункта, открывать дополнительный порт на файрволах тоже не придётся (речь о порте 873/tcp дя rsyncd) - потому что можно обойтись стандартным портом SSH port 22.

Как Работать с rsync через SSH

В большинстве случаев, никаких дополнительных движений и опций не нужно - rsync сам всё сообразит. Но если уж очень важно, то стоит указать ssh транспорт с помощью опции -e:

rsync -avhz -e ssh newscripts becky:/home/greys/scripts

В этой командной строке:

  • newscripts имя локльного каталога, который я хочу скопировать
  • becky это удалённый сервер - одна из моих систем на базе Raspberry Pi
  • /home/greys/scripts это название удалённого каталога на сервере becky

Поведение rsync в данной ситуации будет такого: полная копия содержимого локального каталога newscripts окажется в каталоге /home/greys/scripts на удалённой системе becky.

Ну, давайте запустим:

$ rsync -avhz -e ssh newscripts becky:/home/greys/scripts
sending incremental file list
created directory /home/greys/scripts
newscripts/
newscripts/automount.sh
newscripts/backups.sh
newscripts/jkl.sh
newscripts/mtime-capto.sh
newscripts/mtime-capto2.sh
newscripts/mtime-screenshot.sh
newscripts/mtime-voila.sh
newscripts/mtime.sh
newscripts/plex-mpv.sh

sent 3.75K bytes received 233 bytes 1.14K bytes/sec
total size is 7.44K speedup is 1.87

Основная Польза от RSync

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

Мой каталог newscripts содержит следующие файлы:

$ ls -al newscripts
total 72
drwxr-xr-x 11 greys staff 352 9 Jul 20:07 .
drwxr-xr-x+ 97 greys staff 3104 9 Jul 20:25 ..
-rwxr-xr-x 1 greys staff 1348 9 Jul 20:07 automount.sh
-rwxr-xr-x 1 greys staff 2153 9 Jul 20:07 backups.sh
-rwxr-xr-x 1 greys staff 283 9 Jul 20:07 jkl.sh
-rwxr-xr-x 1 greys staff 634 9 Jul 20:07 mtime-capto.sh
-rwxr-xr-x 1 greys staff 641 9 Jul 20:07 mtime-capto2.sh
-rwxr-xr-x 1 greys staff 645 9 Jul 20:07 mtime-screenshot.sh
-rwxr-xr-x 1 greys staff 632 9 Jul 20:07 mtime-voila.sh
-rwxr-xr-x 1 greys staff 583 9 Jul 20:07 mtime.sh
-rwxr-xr-x 1 greys staff 522 9 Jul 20:07 plex-mpv.sh

Давайте теперь поменяем пару файлов:

echo "test" >> newscripts/jkl.sh
echo "test" >> newscripts/mtime.sh

И перезапустим rsync. Как видно, теперь команда спорировала не всё, а только новые файлы:

$ rsync -avhz -e ssh newscripts becky:/home/greys/scripts
sending incremental file list
newscripts/jkl.sh
newscripts/mtime.sh

sent 814 bytes received 67 bytes 195.78 bytes/sec
total size is 7.45K speedup is 8.46

Надеюсь, это когда-нибудь вам пригодится! До скорого!

Ссылки




Давайте учиться вместе!

Заходите на страницу Facebook или присоединяйтесь к чату в Telegram:
Я использую браузер Brave
Попробуйте сами: Brave Browser
IT Консалтинг
У меня есть консалтинговая компания: Tech Stack Solutions. Я помогаю планировать и создавать облачные решения на базе AWS и помогаю с развёртыванием и поддержкой сервисов на Unix/Linux. Свяжитесь со мной тут.
Последние заметки
18 Jun 2021

Вышла CentOS 8.4

28 May 2021

Клавиатура Keychron K3

13 May 2021

Ошибка: mkdir - Cannot Create Directory

Recent Tweets