
Если вы не будете регулярно создавать резервные копии своего сервера, у вас практически не будет возможности восстановить потерянные файлы. Поэтому резервные копии всегда должны играть важную роль в планировании сервера. Инструмент/протокол синхронизации rsync является одним из многих доступных решений для резервного копирования.
- Что такое rsync и для чего он используется?
- Обзор наиболее важных опций rsync
- Настройка резервного копирования rsync на серверах Linux
- 5 популярных сценариев резервного копирования с помощью 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