Как использовать 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
В приведенной выше команде опция:
-a
– означает режим архива-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 знают, насколько это выгодно.
Самое главное, вы также можете поделиться своим мнением о примерах, которые мы рассмотрели здесь, или, что еще лучше, предложить нам ценные советы по использованию этого жизненно важного инструмента командной строки в разделе комментариев ниже.