Запасливый пингвин. Программы для резервного копирования в Linux

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

Народные мудрости

На базе Linux любят разворачивать NAS- и FTP-серверы. Для таких систем неплохо бы иметь резервную копию как минимум конфигурации, а в идеале еще и данных. Не стану читать очередную лекцию, насколько важно озаботиться резервным копированием до того, как с основным носителем информации приключится беда. Но повторю одну притчу из айтишного фольклора: люди делятся на тех, кто делает бэкапы, и тех, кто их еще не делает. С основами создания резервных копий ты можешь ознакомиться, например, в упомянутой статье, а мы не будем тратить время на теорию и сразу перейдем к делу.

WARNING

В одной статье всех существующих решений для резервного копирования не обозреть, поэтому мы рассмотрели и сравнили наиболее известные из них. Если тут нет твоей любимой программы — не обессудь.

Самое что ни на есть хардкорное резервное копирование данных с носителей можно выполнить командой dd. И самое прикольное, что можно примонтировать получившийся образ и работать с ним как с обычным разделом в режиме чтения и записи. Никаких тебе DAEMON Tools или Alcohol для эмулирования дисковода...

Снимаем слепок устройства /dev/sdb1 и монтируем его

Подобные способы подкупают своей простотой и удобством создания резервной копии. К тому же не надо беспокоиться, что слетят права и прочие атрибуты файлов или испортятся символические ссылки. Еще можно примонтировать, например, Яндекс.Диск и сразу закидывать бэкапы на него. Но это кажется удобным лишь до поры до времени, пока не требуется ставить создание бэкапов на поток, а нужно лишь снять образ с флешки или диска. Для более серьезных задач в Linux уже существует достаточное количество утилит, делающих процесс резервного копирования с последующим восстановлением почти таким же простым (ну, после некоторой подготовки), как в винде или в macOS, поэтому вместо изобретения еще одного велосипеда давай-ка лучше изучим готовые.

Тем, кто любит помощнее

Ты гик или админишь что-то посложнее сети из двух с половиной хостов? Тогда специально для тебя мы рассмотрим сперва исконно линуксовые, сложные и не всегда понятные с первой попытки программы для создания бэкапов. Начнем, пожалуй, с классики.

rsync

Ходят легенды, что rsync, появившаяся в 1996-м и даже портированная в 1999-м на NT, была разработана для замены rcp (remote copy). А имя ее произошло от словосочетания remote synchronization, для чего она и была предназначена.

Утилита включена во все популярные дистрибутивы Linux; существуют версии для систем BSD, macOS и Windows. Эта свободная программа с интерфейсом командной строки предоставляет широкие возможности синхронизации локальных и удаленных файлов с использованием собственного алгоритма, уменьшающего объем пересылаемого трафика. Она применяется для создания зеркал и резервных копий — полных, инкрементных и при желании (вот один из гайдов) дифференциальных. Для автоматизации можно настроить расписание с помощью задач cron. При передаче на удаленные хосты rsync умеет использовать разный транспорт, в том числе rsh, SSH и сырые сокеты с собственным протоколом rsync. Можно указывать, какие файлы не следует синхронизировать, перечислив их имена, размер и не только; можно ограничивать скорость передачи данных и использовать множество других настроек.

Вот так один маленький слеш в конце пути-источника решает, будет ли создаваться папка в назначении

Rsync позволяет создать демон, своего рода удаленный сервер rsync, который также можно сконфигурировать совершенно по-разному в зависимости от поставленной задачи. Он может принимать удаленные соединения анонимно, по паролю и без, с шифрованием по SSH на заданном порте с использованием ключей, с разными конфигурациями для разных пользователей, создаваемых в рамках rsync... При всем этом для успешного общения двух узлов демон rsync необязателен: разница между использованием демона и работой без него разъясняется на сайте проекта.

Опции настройки демона описаны в man rsyncd.conf, а примеры использования программы также представлены на сайте.

В мануале описано множество нюансов работы с этим мощным инструментом, таких как обработка символических ссылок и атрибутов файлов, опции удаления файлов при обновлении директорий, параметры пересылки данных и многое другое, что и в голову так просто не придет. В общем, в любой непонятной ситуации — RTFM!

luckyBackup

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

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

  • тип (бэкап или синхронизация) и описание задачи;
  • правила копирования определенных директорий: настройка исключений по шаблонам, можно задать их самостоятельно или использовать имеющиеся; включений, которые должны быть обязательно скопированы;
  • настроить использование удаленного узла в качестве источника или места назначения, с SSH или без;
  • сохранение метаданных файлов, обработка ссылок и специальных файлов, в том числе по пользовательским шаблонам;
  • команды оболочки, которые необходимо выполнить до или после исполнения задачи;
  • можно просмотреть команду rsync, которая будет запущена для выполнения созданной задачи.

Задачи можно включать или отключать, тыкая курсором мыши в чекбокс рядом с ее названием. Профили можно экспортировать (почему бы не забэкапить профиль программы бэкапа?). Контекстная справка при наведении курсора помогает простому смертному не затеряться в расширенных опциях.

Расширенная настройка задач в luckyBackup

Back In Time

Утилита с набором функций, очень похожим на luckyBackup. Тоже поддерживает профили, но экспортировать их нельзя, и внутри них нет задач — здесь профиль и есть задача.

Back In Time может использоваться в консольном или GUI-исполнении. Предлагает обычные или шифрованные EncFS копии, которые могут храниться локально или передаваться по SSH. Позволяет создавать бэкапы по дням и по часам, при включении компьютера и при подключении устройств, для чего использует cron или правила udev.

Можно настроить удаление старых бэкапов по их возрасту и количеству свободного места или инод (inodes). Да-да, иноды тоже могут закончиться, и тогда ты не сможешь создать файл, даже если есть место на диске. Вкладка Expert Options содержит набор расширенных опций для rsync. Бэкапы утилита сохраняет в виде архивов.

Настройки профиля в Back In Time

Bacula

Опенсорсный монстр для резервного копирования. Его можно собрать из исходников, однако готовые пакеты последних версий с сайта разработчиков просто так не получишь. Bacula обещает мощную функциональность — программа не в последнюю очередь ориентирована на работу в крупных компьютерных сетях и вообще на масштабирование; она умеет делать все три вида бэкапов. Имеются версии для Windows (есть даже клиент под Win98!), macOS и Open/NetBSD.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


Ксения Кирилова: Desperately in love with Linux and C

Комментарии (6)

  • Вот это тема!
    Спасибо за статью.
    Ксения, ты молодец, хорошо написано.

    • на страже интересов красноглазиков!

      • Спасибо за информативный обзор, беру себе на заметку (-:

    • если писать про всё, что нашлось в ходе подготовки, статья бы раза в 2 больше вышла, хотя да, инструмент интересный

  • Спасибо, Ксюша за полезную статейку!

    Могу лишь добавить, что Linux-машины также удобно бэкапить на уровне файлов по FTP, SFTP (SSH) со стороны Windows-машины, если на нее установить Exiland Backup

Похожие материалы