Резервное копирование сервера с помощью rsync

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

Что такое rsync и для чего он используется?

Название rsync относится к сетевому протоколу для синхронизации файлов, разработанному в 1996 году Эндрю Триджеллом (среди прочих), который возглавлял проект SAMBA. Помимо протокола, существует одноименный инструмент, облегчающий взаимодействие по протоколу. Приложение под лицензией GPL может использоваться бесплатно и осуществляет передачу файлов из исходного каталога в требуемый целевой каталог — локально или через сеть общего пользования. Размер и время создания всех файлов в исходной и целевой папках сравниваются во время синхронизации, так что каждый процесс синхронизации копирует только измененные файлы. По этой причине процесс резервного копирования rsync называют инкрементным вариантом резервного копирования, преимуществом которого является то, что резервные копии выполняются быстро и занимают мало места в памяти.

rsync доступен для всех стандартных операционных систем UNIX, таких как OS/2, Linux или macOS. Используя API-обертку Cygwin, его также можно использовать в Microsoft Windows.

Типичные сценарии использования rsync включают резервное копирование данных и создание зеркальных серверов (полных образов серверов), а также синхронизацию данных в компаниях с различным местоположением и слабым соединением. В частности, последняя функция сегодня почти исключительно выполняется современными облачными технологиями — в том числе и потому, что слабые соединения данных становятся все более редкими.

Обзор наиболее важных опций rsync

Выдающейся особенностью резервного копирования rsync является его эффективность. Инкрементный подход минимизирует загрузку сети, что является преимуществом, в частности, для больших файлов — независимо от того, являются ли изменения в файлах значительными или минимальными. Как инструмент командной строки, rsync по умолчанию управляется через Терминал — или через Командную строку, если вы используете rsync на устройстве Windows. Записи имеют следующий синтаксис:

rsync -(-)Options Source path Target path

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

Опция

Функция

-r, —recursive

Резервное копирование rsync учитывает все подкаталоги

-u, —update

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

-c, —checksum

Различает исходные и целевые файлы на основе контрольных сумм

-l, —links

Символические ссылки копируются как таковые (а не как файлы)

-p, —perms

Разрешения файлов сохраняются

-g, —group

Сохраняются групповые права доступа к файлам

-t, —times

Сохраняются временные метки файлов (последнее изменение)

-o, —owner

Владельцы файлов сохраняются (только если администраторы)

-D, —devices

Данные устройства сохраняются

-z, —compress

Автоматическое сжатие передаваемых файлов

—compress-level=NUM

Определяет уровень сжатия; возможны значения («NUM») от 0 (без сжатия) до 9 (максимальное сжатие)

-v, —verbose

Более подробная информация во время процесса резервного копирования

-q, —quiet

Скрыть все подробности о процессе резервного копирования (кроме сообщений об ошибках)

-a, —archive

Режим архивирования, используемый как стандартный режим и идентичный комбинации опций -rlptgoD

-n, —dry-run

Тестовый запуск, при котором не производится никаких фактических изменений

-h, —help

Вспомогательное меню (может использоваться только без указания исходных и целевых каталогов или других аргументов)

—bwlimit=KBPS

Ограничить пропускную способность (килобайты в секунду); например, —bwlimit=30 (ограничение 30 кбит/с)

—exclude=SAMPLE

Исключить шаблон из синхронизации; например, —exclude sample folder (папка «Sample folder» не синхронизируется).

—delete

Удалить все файлы, которые находятся в целевом каталоге, но не находятся в исходном каталоге.

—progress

Показать продолжительность резервного копирования rsync и скорость передачи данных.

—list-only

Выводить список файлов вместо резервной копии

—stats

Полный отчет о переданных данных (количество, размер)

—max-size=SIZE

Определить максимальный размер файла; например, —max-size=10MB (передаются только файлы размером до 10 MB).

—ignore-errors

Предотвращает отмену процесса резервного копирования в случае ошибки.

Настройка резервного копирования rsync на серверах Linux

Чтобы использовать rsync на операционных системах Linux, установите протокол из одноименного пакета и создавайте резервные копии с помощью команд терминала. В качестве альтернативы можно использовать такие приложения, как Back In Time, rsnapshot (для регулярного автоматического резервного копирования) или Unison для управления процессом резервного копирования с помощью графического интерфейса пользователя. В приведенном ниже примере на примере Ubuntu мы покажем вам самые важные шаги по настройке процессов резервного копирования с помощью rsync:

rsync установлен по умолчанию в Ubuntu. Если это не так, установите его с помощью следующей команды.

sudo apt-get install rsync

Когда rsync установлен, используйте необходимые команды терминала, чтобы указать исходный и целевой каталоги и параметры резервного копирования. Например, стандартный режим («Архив») можно запустить следующим образом:

rsync -a Source directory Target directory
Совет

Рекомендуется использовать тестовый запуск (-n) и проверить точность указанных параметров и каталогов; неточные спецификации могут привести к потере данных в худшем случае. Если в ходе процесса некоторые файлы не копируются так, как требуется, это часто связано с отсутствием прав доступа. В таких случаях попробуйте запустить команду от имени администратора, указав перед ней параметр «sudo».

5 популярных сценариев резервного копирования с помощью rsync

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

Стандартное резервное копирование с архивным режимом

Режим архивирования, который копирует все файлы из исходного каталога в целевой каталог (включая все подкаталоги) и сохраняет все авторизации, временные метки и данные устройства, является идеальным и самым простым решением во многих случаях, поскольку объединяет различные опции в одном параметре. Если вы сочетаете этот режим с параметром -v, вы также будете получать исчерпывающую информацию о состоянии во время процесса резервного копирования.

rsync -av Source directory Target directory

Идентичная копия исходного каталога

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

rsync -av --delete Source directory Target directory

Резервное копирование без учета файлов определенного формата

Если вы хотите запустить резервное копирование, исключив файлы определенного формата, вы можете использовать для этого команду —exclude. Параметр позволяет задать индивидуальный символьный шаблон, который rsync использует в качестве индикатора для игнорирования файла. Следующий пример кода исключает текстовые файлы .txt.

rsync -av --exclude'*.txt' Source directory Target directory

Резервное копирование файлов с определенным минимальным или максимальным размером

Если вы хотите, чтобы не конкретный шаблон символов, а размер файла влиял на исключение определенных файлов из резервного копирования rsync, вы можете использовать параметры —max-size и —min-size. Если вы используете следующую команду, копируются только файлы размером не менее 10 МБ и не более 100 МБ:

rsync -av --min-size=10MB --max-size=100MB Source directory Target directory

Резервное копирование с преобразованием формата символов

Вам может потребоваться преобразовать файлы в другой формат символов в целевом каталоге — например, если вы хотите перенести данные с Mac на сервер Linux. В стандартном режиме устройства Apple используют UTF8-MAC, который недоступен в системах Linux и может вызвать проблемы со специальными символами и умляутами. Опция —iconv позволяет легко адаптировать кодировку символов в процессе резервного копирования rsync (из UTF8-MAC в UTF8 в примере):

rsync -av --iconv=UTF8-MAC,UTF8 Source directory Target directory

Оцените статью
cdelat.ru
Добавить комментарий