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

Как освоить команду rsync в Linux
⏱️ 1 min read

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

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

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

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

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

sudo apt install rsync

rsync-установить

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

dnf install rsync

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

yum install rsync

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

pacman -S rsync

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

zypper install rsync

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

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

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

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

man rsync

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

Нажимать д выйти из мануала.

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

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 -P --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 относится к имени пользователя, созданному на сервере. Это может отличаться от имени пользователя на вашем локальном компьютере.

Если вы владеете доменным именем и указываете его на 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 и прокрутите несколько страниц вниз, пока не найдете «Сводка параметров».

Join our Newsletter and receive offers and updates! ✅

0 0 голоса
Article Rating
Аватар Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Подписаться
Уведомить о
guest
0 Comments
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x