Как следует из названия, rsync - это инструмент синхронизации. При первом использовании вы просто Копировать файлы и каталоги с одного сайта на другой. Однако последующее использование только синхронизирует различия между этими местоположениями. Таким образом, если вы добавите один файл в исходный каталог, rsync скопирует только новый файл в место назначения. Это экономит много времени и трафика, особенно при копировании на удаленный сайт.
Представьте, что у вас есть 50 ГБ данных, которые нужно синхронизировать с удаленным сервером. Вы можете запланировать ежедневный запуск rsync. Вместо того, чтобы копировать все 50 ГБ снова и снова, инструмент просто отправит различия. Это может означать, что вам придется загружать несколько мегабайт данных каждый день вместо гигабайт.
На изображении выше вы можете увидеть, как в первый раз было передано 104 МБ, а во время второго использования данные, которые были необходимы, составляют всего 31 КБ.
Как установить rsync в разных дистрибутивах Linux
В дистрибутивах на основе Debian и 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
Если инструмента нет в списке ваших репозиториев по умолчанию, обратитесь к Страница установки openSUSE rsync.
Как использовать rsync для синхронизации локальных файлов или каталогов
Общий синтаксис rsync: rsync [параметры] / путь / к / источнику / путь / к / месту назначения.
[параметры] означают параметры командной строки, которые вы можете найти в руководстве:
man rsync
пресс 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 копирует содержимое в этот каталог. В этом случае каждый файл будет раскидан по / бин в целевом каталоге. Так rsync -av /bin/. Это приведет к тому, что показано на следующем изображении.
Это различие очень важно помнить, поскольку при использовании 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 и прокрутите несколько страниц вниз, пока не найдете Обзор параметров.