Поиск по сайту:

Как использовать Rsync для синхронизации новых или измененных/модифицированных файлов в Linux


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

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

Рекомендуется к прочтению: 10 практических примеров команды Rsync в Linux

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

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

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

Для начала вам нужно запомнить, что обычная и простейшая форма использования rsync выглядит следующим образом:

rsync options source destination 

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

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

Используя приведенную ниже команду, я могу копировать файлы из моего каталога Documents в каталог /tmp/documents локально:

rsync -av Documents/* /tmp/documents

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

  1. -a – означает режим архива
  2. -v – означает подробный, показывающий подробную информацию о текущих операциях.

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

rsync -av Documents/* /tmp/documents

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

Рекомендуется к прочтению: Как синхронизировать два веб-сервера/веб-сайта Apache с помощью Rsync

Опция --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/* [email :~/all/

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

rsync -av --dry-run --update Documents/* [email :~/all/
rsync -av --update Documents/* [email :~/all/

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

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

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