Как использовать Rsync для локальной и удаленной передачи данных и синхронизации

Как использовать Rsync для локальной и удаленной передачи данных и синхронизации

How to Use Rsync for Local and Remote Data Transfer and Synchronization

21 Декабря 2019 | Терминал

В этом руководстве мы покажем вам, как использовать rsync на практических примерах и подробные объяснения наиболее распространенных  вариантов rsync.

Как использовать Rsync для локальной и удаленной передачи данных и синхронизации

Rsync - это быстрая и универсальная утилита командной строки, которая синхронизирует файлы и папки между двумя местоположениями через удаленную оболочку или из / в удаленный демон Rsync. Он обеспечивает быструю пошаговую передачу файлов, передавая только различия между источником и местом назначения.

Rsync может использоваться для зеркального отображения данных, добавочное резервного копирования, копирования файлов между системами и в качестве замены для scp, sftp и cp команд для повседневного использования.


Установка Rsync

rsync Утилита предварительно установлена на большинстве дистрибутивов и MacOS Linux. Вы можете проверить, установлен ли он в вашей системе, набрав:

rsync --version
rsync  version 3.1.2  protocol version 31


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


Установите Rsync в Ubuntu и Debian

sudo apt install rsync


Установите Rsync на CentOS и Fedora 

sudo yum install rsync


Синтаксис команды Rsync 

Прежде чем перейти к использованию rsync команды, давайте начнем с обзора основного синтаксиса.

В rsync полезности выражение принимает следующий вид:

Local to Local:  rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]

  • OPTION - Опции rsync .
  • SRC - Исходный каталог.
  • DEST - Каталог назначения.
  • USER - Удаленное имя пользователя.
  • HOST - Удаленное имя хоста от IP-адреса.

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

  • -a, --archive Режим архива, что эквивалентно -rlptgoD. Эта опция указывает rsync на рекурсивную синхронизацию каталогов, передачу специальных и блочных устройств, сохранение символических ссылок, времени модификации, группы, владельца и разрешений.
  • -z, --compress. Эта опция принудительно rsync сжимает данные при их отправке на конечный компьютер. Используйте эту опцию, только если соединение с удаленным компьютером является медленным.
  • -P, эквивалентно --partial --progress. При использовании этой опции rsync во время передачи будет отображаться индикатор выполнения и сохраняться частично переданные файлы. Это полезно при передаче больших файлов по медленным или нестабильным сетевым соединениям.
  • --delete, При использовании этой опции rsyncудаляются посторонние файлы из места назначения. Это полезно для зеркалирования.
  • -q, --quiet. Используйте эту опцию, если вы хотите подавить сообщения, не связанные с ошибками.
  • -e, Эта опция позволяет вам выбрать другую удаленную оболочку. По умолчанию rsync настроено использование ssh.

Основное использование Rsync

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

rsync -a /opt/filename.zip /tmp/



Пользователь, выполняющий команду, должен иметь разрешения на чтение в месте назначения и права на запись в месте назначения.

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

rsync -a /opt/filename.zip /tmp/newfilename.zip


         В приведенном ниже примере мы создаем локальную резервную копию файлов нашего сайта:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/


         Если каталог назначения не существует rsync, создаст его.

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

Как использовать Rsync для синхронизации данных с / на удаленный компьютер

При использовании rsync для удаленной передачи он должен быть установлен как на исходном, так и на конечном компьютере. Новые версии rsyncнастроены на использование SSH в качестве удаленной оболочки по умолчанию.

В следующем примере мы переносим каталог с локального на удаленный компьютер:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Если вы не установили пароль на удаленном компьютере, вам будет предложено ввести пароль пользователя.

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


rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/


         Если SSH на удаленном хосте прослушивает порт, отличный от порта по умолчанию 22, вы можете указать порт, используя -e опцию:


rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/


         При передаче больших объемов данных рекомендуется выполнить rsync команду внутри сеанса screen или использовать -P параметр:

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/


Исключить файлы и каталоги 

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

Есть два варианта, чтобы исключить файлы и каталоги. Первый вариант - использовать --exclude аргумент и указать файлы и каталоги, которые вы хотите исключить, в командной строке.


         В следующем примере мы исключая node_modules и tmp каталоги , которые расположены внутри src_directory:

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/


         Второй вариант - использовать --exclude-from аргумент и указать файлы и каталоги, которые вы хотите исключить из файла.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
/exclude-file.txt
node_modules
tmp

Вывод 

Из этого руководства вы узнали, как использовать Rsync для копирования и синхронизации файлов и каталогов. Еще много информации о Rsync можно найти на странице руководства пользователя Rsync .


    Комментарии

    Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Загрузка комментариев...