ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как синхронизировать новые и измененные файлы с помощью команды ‘rsync’

Как синхронизировать новые и измененные файлы с помощью команды ‘rsync’

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

Некоторые из его выдающихся особенностей и преимуществ включают; он исключительно универсален в том смысле, что может копировать локально, в/из удаленной командной строки или удаленного rsync, он также удивительно гибкий, позволяя пользователям указывать любое количество файлов для копирования.

Кроме того, он разрешает копирование ссылок, устройств, владельца файла или каталога, групп и разрешений. Он также поддерживает использование без прав root в сочетании со многими другими.

Одним из существенных отличий rsync от других команд управления файлами в Linux является использование протокола удаленного обновления для передачи только различий между файлами или содержимым каталога.

Поэтому в этой статье мы рассмотрим, как rsync может помочь нам синхронизировать только новые или измененные файлы или содержимое каталога при создании резервных копий и за их пределами в Linux.

Для начала вам нужно помнить, что традиционная и простейшая форма использования rsync заключается в следующем:
rsync options source destination

 

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

 

Локальная синхронизация файлов с помощью Rsync

С помощью приведенной ниже команды можно локально скопировать файлы из каталога “Мои документы” в каталог “/tmp/documents“:

rsync -av Documents/* /tmp/documents

 

В приведенной выше команде опция:

 

По умолчанию rsync копирует только новые или измененные файлы из источника в пункт назначения, когда мы добавляем новый файл в свой каталог Documents, это то, что происходит после повторного запуска той же команды:

rsync -av Documents/* /tmp/documents

 

Как вы можете видеть из выходных данных команды, в каталог назначения копируется только новый файл.

Опция --update или -u позволяет rsync пропускать файлы, которые все еще являются новыми в каталоге назначения, и одна важная опция, --dry-run или -n позволяет нам выполнить тестовую операцию без внесения каких-либо изменений. Он показывает нам, какие файлы необходимо скопировать.

rsync -aunv Documents/* /tmp/documents

 

После выполнения тестового запуска мы можем избавиться от -n и выполнить реальную операцию:

rsync -auv Documents/* /tmp/documents

 

Синхронизация файлов из локального в удаленный Linux

В приведенном ниже примере я копирую файлы со своего локального компьютера на удаленный сервер с IP–адресом – 10.42.1.5. Чтобы синхронизировать только новые файлы на локальном компьютере, которых нет на удаленном компьютере, мы можем включить опцию --ignore-existing:

rsync -av --ignore-existing Documents/* aaronkilik@10.42.1.5:~/all/

 

Впоследствии, чтобы синхронизировать на удаленном компьютере только обновленные или измененные файлы, которые изменились на локальном компьютере, мы можем выполнить пробный запуск перед копированием файлов, как показано ниже:

rsync -av --dry-run --update Documents/* aaronkilik@10.42.1.5:~/all/
rsync -av --update Documents/* aaronkilik@10.42.1.5:~/all/

 

Чтобы обновить существующие файлы и предотвратить создание новых файлов в месте назначения, мы используем опцию --existing.

Вы можете просмотреть страницу man rsync, чтобы найти дополнительные полезные опции для расширенного использования. Как я упоминал ранее, rsync – очень мощный и универсальный инструмент Linux, и многие системные администраторы и опытные пользователи Linux знают, насколько это выгодно.

Самое главное, что вы также можете поделиться своим мнением о примерах, которые мы рассмотрели здесь, или, что еще лучше, предложить нам ценные советы по использованию этого важного инструмента командной строки в разделе комментариев ниже.

Exit mobile version