Утилита rsync
— это инструмент командной строки, предназначенный для синхронизации файлов между различными каталогами на локальном компьютере или между удаленными хостами. Она передает только новые или измененные файлы, сокращая время и пропускную способность, необходимые для их отправки.
В этой статье мы покажем, как использовать rsync
для синхронизации и передачи файлов как на локальном хосте, так и между удаленными машинами в Linux.
Содержание:
- Синтаксис команды rsync
- Как отправить и синхронизировать файлы на локальной машине
- Как отправить и синхронизировать файлы с локальной на удаленную машину
- Выводы
Синтаксис команды rsync
Сразу стоит сказать, что синтаксис rsync
для передачи файлов между каталогами на локальной машине отличается от синтаксиса, который используется для синхронизации файлов между двумя удаленными компьютерами. Основное различие заключается в способе указания конечного каталога.
Для локальной передачи данных синтаксис имеет следующий вид:
Где:
[options]
— опции, которые можно применить сrsync
;SOURCE
— путь к исходному каталогу или каталогу, содержимое которого будет скопировано;DESTINATION
— путь к директории, в которую будет отправлено содержимое исходного каталога или файл;
Для удаленной передачи информации:
Где:
[options]
— опции, которые можно применить сrsync
;SOURCE
— путь к исходному каталогу или файлу, содержимое которого будет скопировано;<username>
— имя пользователя, которое будет использовано для доступа к удаленному узлу;<remote_host>
— название хоста или IP-адрес удаленной машины;DESTINATION
— путь к директории на удаленном компьютере, в которую будет отправлено содержимое исходного каталога или файл;
Как отправить и синхронизировать файлы на локальной машине
Итак, сперва мы покажем применение команды rsync
для передачи данных на локальном компьютере. Будем брать файлы из каталога Downloads
и отправлять в папку Documents
.
Выполним команду ls
, чтобы узнать, какие файлы хранятся в Downloads
:
Читайте также: Rsync (Remote Sync): 10 практических примеров использования команды Rsync в Linux.
На скриншоте видно, что у нас есть файлы file.txt
, qwerty.txt
, sedicomm.txt
и zxcv.txt
. Сначала мы отправим в каталог Documents
файл с названием qwerty.txt
. Для этого выполним следующую команду:
В этой команде мы использовали пару опций:
-a
— сохраняет права доступа к файлу, владельца и временные метки;-v
— отображает подробную информацию о процессе синхронизации.
Теперь передадим оставшуюся часть файлов из Downloads
. Для этого мы не будем перечислять каждый из них отдельно, а просто укажем путь к данному каталогу. Все из-за того, что rsync
просто пропустит файл qwerty.txt
потому, что он уже был отправлен и после не был изменен. К примеру:
К этой команде мы добавили новую опцию — -u
. Она заставляет rsync
пропустить все файлы в целевом каталоге, время изменения которых новее, чем у исходных файлов.
Как показано на скриншоте, команда передала в Documents
только файлы file.txt
, sedicomm.txt
и zxcv.txt
.
Как отправить и синхронизировать файлы с локальной на удаленную машину
Прежде чем передавать файлы на удаленную машину, нужно убедиться, что выполняются следующие требования:
- оба хоста имеют подключение к Интернету;
- на обоих компьютерах включена служба
ssh
(утилитаrsync
использует протокол SSH); - оба компьютера подключены к одной сети.
Мы выполнили все эти условия и готовы отправлять файл с локального хоста на удаленный. Будем действовать по тому же принципу: сначала отправим qwerty.txt
, а потом — одновременно file.txt
, sedicomm.txt
и zxcv.txt
из директории Downloads
.
Для отправки файла qwerty.txt
на удаленный компьютер воспользуемся следующий командой:
Читайте также: Как синхронизировать два веб-сервера Apache с помощью Rsync.
Стоит описать некоторые элементы этой команды:
--ignore-existing
— опция, которая указываетrsync
на необходимость пропускать копирование файлов, уже существующих в каталоге назначения. Это гарантирует, что будут переданы только новые или измененные файлы.-a
— параметр, который сохраняет права доступа к файлу, владельца и временные метки.-v
— опция, которая отображает подробную информацию о процессе синхронизации.[email protected]:Downloads/
— путь назначения к каталогу на удаленном компьютере, где:user
— имя пользователя, который имеет доступ к удаленному хосту;192.168.59.131
— IP-адрес удаленного узла;Downloads
— каталог назначения.
Теперь нам осталось отправить оставшиеся три файла. Сделаем это с помощью команды:
Выводы
Способность rsync
отправлять только новые или измененные файлы делает его отличным выбором для их синхронизации и сокращения времени передачи данных. Благодаря разнообразным возможностям утилита является полезным инструментом для пользователей и системных администраторов Linux, которым нужно пересылать данные между удаленными компьютерами.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.