Android

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

08 SFTP SCP and RSYNC

08 SFTP SCP and RSYNC

Оглавление:

Anonim

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

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

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

Установка Rsync

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

rsync --version

rsync version 3.1.2 protocol version 31

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

sudo apt install rsync

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

sudo yum install rsync

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

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

Выражения утилиты rsync имеют следующую форму:

Local to Local: rsync…… DEST Local to Remote: rsync…… HOST:DEST Remote to Local: rsync… HOST:SRC…

  • OPTION - параметры rsync. SRC - исходный каталог. DEST - целевой каталог. USER - Удаленное имя пользователя. HOST - 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 в сеансе экрана или использовать параметр -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.

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

rsync терминал