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

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

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

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

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

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

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

sudo apt install rsync
Как освоить команды rsync в Linux - Linux

على FedoraУстановите его с помощью:

dnf install rsync

и на распределениях, полученных из RedHat (Например , CentOS):

yum install rsync

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

pacman -S rsync

على openSUSE , использовать:

zypper install rsync

Если инструмента нет в списке ваших репозиториев по умолчанию, обратитесь к Страница установки openSUSE rsync.

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

Общий синтаксис rsync: rsync [параметры] / путь / к / источнику / путь / к / месту назначения.

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

man rsync
Как освоить команды rsync в Linux - Linux

пресс q чтобы закончить руководство.

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

rsync /bin/ls .

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

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

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

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

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

без - добавить Процесс передачи выполняется с самого начала.

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

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

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

rsync -av /bin .

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

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

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

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

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

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

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

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

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

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

Если у вас есть доменное имя и вы указываете его на IP-адрес сервера, вы можете использовать домен в команде:

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

Перейти к верхней кнопке