Как следует из названия, rsync — это инструмент синхронизации. При первом использовании он просто копирует файлы и каталоги из одного места в другое. Однако последующие использования синхронизируют только различия между этими местоположениями. Итак, если вы добавите один файл в исходный каталог, rsync скопирует в пункт назначения только новый файл. Это экономит много времени и трафика, особенно при копировании в удаленное место.
Представьте, что у вас есть 50 ГБ данных, которые нужно синхронизировать с удаленным сервером. Вы можете запланировать ежедневный запуск rsync. Вместо того, чтобы снова и снова копировать все 50 ГБ, утилита отправит только различия. Это может означать, что каждый день ему нужно будет загружать всего несколько мегабайт данных вместо гигабайт.
На изображении выше вы можете видеть, как в первый раз было передано 104 МБ, а во время второго использования потребовалось только 31 КБ.
Читайте также: Использование Rclone для синхронизации с несколькими поставщиками облачных хранилищ в Linux
Как установить rsync в различных дистрибутивах Linux
В Debian и дистрибутивах на его основе, таких как Ubuntu, вы можете установить rsync с помощью:
sudo apt install rsync
В Fedora установите с помощью:
dnf install rsync
И в дистрибутивах, созданных на основе RedHat (например, CentOS):
yum install rsync
Чтобы установить rsync в Arch Linux, используйте команду:
pacman -S rsync
В openSUSE используйте:
zypper install rsync
Если он не включен в ваши репозитории по умолчанию, обратитесь к разделу
Contents
Как установить 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
Нажмите 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 копирует содержимое этого каталога. В этом случае каждый файл в /bin
будет разбросан по целевому каталогу. Таким образом, rsync -av /bin/ .
приведет к тому, что показано на следующем изображении.
Очень важно помнить об этой разнице, поскольку при использовании 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 и прокрутите несколько страниц вниз, пока не найдете «Сводка параметров».