Запасливый пингвин. Программы для резервного копирования в Linux
Недавно мы писали про утилиты для резервного копирования в Windows, однако у линуксоидов бэкапы тоже насущная проблема. Настало время восстановить справедливость и посмотреть, какие средства позволяют спасать ценные данные от разных напастей, если на компьютере установлен один из дистрибутивов Linux.
Народные мудрости
На базе Linux любят разворачивать NAS- и FTP-серверы. Для таких систем неплохо бы иметь резервную копию как минимум конфигурации, а в идеале еще и данных. Не стану читать очередную лекцию, насколько важно озаботиться резервным копированием до того, как с основным носителем информации приключится беда. Но повторю одну притчу из айтишного фольклора: люди делятся на тех, кто делает бэкапы, и тех, кто их еще не делает. С основами создания резервных копий ты можешь ознакомиться, например, в упомянутой статье, а мы не будем тратить время на теорию и сразу перейдем к делу.
WARNING
В одной статье всех существующих решений для резервного копирования не обозреть, поэтому мы рассмотрели и сравнили наиболее известные из них. Если тут нет твоей любимой программы — не обессудь.
Самое что ни на есть хардкорное резервное копирование данных с носителей можно выполнить командой dd . И самое прикольное, что можно примонтировать получившийся образ и работать с ним как с обычным разделом в режиме чтения и записи. Никаких тебе DAEMON Tools или Alcohol для эмулирования дисковода.
Подобные способы подкупают своей простотой и удобством создания резервной копии. К тому же не надо беспокоиться, что слетят права и прочие атрибуты файлов или испортятся символические ссылки. Еще можно примонтировать, например, Яндекс.Диск и сразу закидывать бэкапы на него. Но это кажется удобным лишь до поры до времени, пока не требуется ставить создание бэкапов на поток, а нужно лишь снять образ с флешки или диска. Для более серьезных задач в 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 , которая будет запущена для выполнения созданной задачи.
Задачи можно включать или отключать, тыкая курсором мыши в чекбокс рядом с ее названием. Профили можно экспортировать (почему бы не забэкапить профиль программы бэкапа?). Контекстная справка при наведении курсора помогает простому смертному не затеряться в расширенных опциях.
Back In Time
Утилита с набором функций, очень похожим на luckyBackup. Тоже поддерживает профили, но экспортировать их нельзя, и внутри них нет задач — здесь профиль и есть задача.
Back In Time может использоваться в консольном или GUI-исполнении. Предлагает обычные или шифрованные EncFS копии, которые могут храниться локально или передаваться по SSH. Позволяет создавать бэкапы по дням и по часам, при включении компьютера и при подключении устройств, для чего использует cron или правила udev .
Можно настроить удаление старых бэкапов по их возрасту и количеству свободного места или инод (inodes). Да-да, иноды тоже могут закончиться, и тогда ты не сможешь создать файл, даже если есть место на диске. Вкладка Expert Options содержит набор расширенных опций для rsync . Бэкапы утилита сохраняет в виде архивов.
Bacula
Опенсорсный монстр для резервного копирования. Его можно собрать из исходников, однако готовые пакеты последних версий с сайта разработчиков просто так не получишь. Bacula обещает мощную функциональность — программа не в последнюю очередь ориентирована на работу в крупных компьютерных сетях и вообще на масштабирование; она умеет делать все три вида бэкапов. Имеются версии для Windows (есть даже клиент под Win98!), macOS и Open/NetBSD.
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее