ГлавнаяОперационные системыLinuxКак освоить команду rsync в Linux

Как освоить команду rsync в Linux

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

Представьте, что у вас есть 50 ГБ данных, которые нужно синхронизировать с удаленным сервером. Вы можете запланировать ежедневный запуск rsync. Вместо того, чтобы снова и снова копировать все 50 ГБ, утилита отправит только различия. Это может означать, что каждый день ему нужно будет загружать всего несколько мегабайт данных вместо гигабайт.

На изображении выше вы можете видеть, как в первый раз было передано 104 МБ, а во время второго использования потребовалось только 31 КБ.

Читайте также: Использование Rclone для синхронизации с несколькими поставщиками облачных хранилищ в Linux

Как установить rsync в различных дистрибутивах Linux

В Debian и дистрибутивах на его основе, таких как Ubuntu, вы можете установить rsync с помощью:

sudo apt install rsync

rsync-install

В Fedora установите с помощью:

dnf install rsync

И в дистрибутивах, созданных на основе RedHat (например, CentOS):

yum install rsync

Чтобы установить rsync в Arch Linux, используйте команду:

pacman -S rsync

В openSUSE используйте:

zypper install rsync

Если он не включен в ваши репозитории по умолчанию, обратитесь к разделу

Как установить rsync в различных дистрибутивах Linux

=network&package=rsync" target="_blank" rel="noopener" title="Страница установки openSUSE rsync">Страница установки openSUSE rsync .

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

Общий синтаксис rsync: rsync [options] /path/to/source /path/to/destination.

[options]означает параметры командной строки, которые вы можете найти в руководстве:

man rsync

параметры командной строки rsync

Нажмите q, чтобы выйти из руководства.

Чтобы скопировать файл:

rsync /bin/ls .

Приведенная выше команда эквивалентна rsync /bin/ls /home/your_username. При этом команда «ls» копируется в каталог, в котором вы сейчас находитесь. По умолчанию это должно быть /home/your_username. Точка .обозначает текущий каталог. Пути могут быть абсолютными (/home/your_username/Downloads/chrome.zip) или относительными к текущему каталогу (Downloads/chrome.zip).

Когда вы имеете дело с очень большими файлами, вы можете использовать эту команду:

rsync -P /path/to/file /path/to/destination

Это покажет прогресс и позволит возобновить прерванную передачу. Е

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

span> --append path/to/file /path/to/destination

Без --appendперенос начнется с нуля.

Чтобы синхронизировать каталоги:

rsync -av /path/to/source /path/to/destination

Пример команды:

rsync -av /bin .

Эффект косой черты в rsync (важно)

В предыдущей команде обратите внимание, что путь к исходному каталогу не содержит косой черты /(/binвместо /bin/). Без косой черты rsync копирует сам каталог. В результате rsync -av /bin .получится то, что показано на следующем изображении.

rsync-без косой черты

При использовании косой черты в конце rsync копирует содержимое этого каталога. В этом случае каждый файл в /binбудет разбросан по целевому каталогу. Таким образом, rsync -av /bin/ .приведет к тому, что показано на следующем изображении.

rsync-с косой чертой в конце

Очень важно помнить об этой разнице, поскольку при использовании TAB для автозаполнения имен каталогов в конце автоматически добавляется косая черта. Так что имейте это в виду, чтобы не создавать беспорядок в целевом каталоге.

Как использовать rsync для синхронизации с удаленными местоположениями (например, серверами)

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

rsync -av /bin your_username@203.0.113.10:/home/your_username

rsync подключается через OpenSSH. Это означает, что вам необходимо заранее настроить сервер OpenSSH и учетные данные для входа в удаленный пункт назначения. Обратите внимание, что your_usernameотносится к имени пользователя, созданному на сервере. Оно может отличаться от имени пользователя на вашем локальном компьютере.

Если у вас есть доменное имя и оно

Эффект косой черты в rsync (важно)

ожете использовать домен в команде:

rsync -av /bin your_username@example.com:/home/your_username

При больших передачах полезно также сжимать данные перед отправкой по сети, добавив параметр -z:

rsync -avz /bin your_username@example.com:/home/your_username

Вы можете опустить параметр сжатия при отправке уже сжатых файлов (аудиофайлы, такие как MP3, видео, изображения JPEG). Их невозможно сжать дальше, поэтому вы фактически потратите время, используя для них -z.

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

rsync -avz your_username@example.com:/bin /home/your_username

Заключение

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

Как использовать rsync для синхронизации с удаленными местоположениями (например, серверами)

Заключение

ПОХОЖИЕ СТАТЬИ

Популярные записи