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

12 set 2022 3 min di lettura
Как использовать Rsync для передачи локальных и удаленных файлов в Linux
Indice dei contenuti

Введение

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

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

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

Установить Rsync

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

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 настроены на использование SSH в качестве удаленной оболочки по умолчанию.

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

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

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

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

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 и указать файлы и каталоги, которые вы хотите исключить из файла.

nano exclude-file.txt
node_modules
 tmp

Следовательно:

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

Вывод

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

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.