Резервное копирование linux. Резервное копирование Ubuntu

Возможность случайного повреждения системы, даже такой надёжной как Linux, всегда существует. Как правило, переустановка ОС занимает много времени и сил. Чтобы избежать неприятностей подобного рода следует пользоваться резервным копированием (бэкап) Ubuntu Linux. Я не буду останавливаться на различных способах создания резервной копии Ubuntu, а расскажу метод, которым пользуюсь сам и советую другим. Мне его посоветовал один мой друг. Вы также можете посмотреть о создании резервной копии всех установленных программ в системе в этой статье . Но этот способ лучше использовать не для бэкапа системы, а в тех случаях, когда нам нужно установить аналогичное ПО на много компов, имеющих одинаковую ОС и конфигурацию.

Создание бэкапа ubuntu через Rsync

Положительные стороны создания бэкапа убунту именно при помощи rsync заключаются в том, что для копирования и восстановления системы нет необходимости в установке дополнительных пакетов и ПО. Всё делается при помощи консоли. Но не пугайтесь работы с консолью! В нашем случае всё будет предельно просто и понятно.

Пару слов о rsync:

Данная команда является очень мощным инструментом для работы с файлами. Ознакомиться с полным списком её возможностей можно написав в консоли man rsync . Предлагаемый мною метод резервного копирования ubuntu через rsync является самым простым и лёгким в освоении.

Бэкап Ubuntu на личном опыте

Чтобы всё было предельно просто - расскажу как у меня происходит backup системы. Мой жесткий диск разбит на 5 разделов, из которых 2 раздела отведено под Ubuntu - системный раздел / и раздел для информации пользователей /home . Я копирую всё содержимое системного раздела / на раздел пользователей в специальную папку /home/.backup . В случае неполадок ОС Ubuntu я запускаюсь с LiveCD и просто копирую бэкап убунту на системный раздел. Основываясь на этом примере ниже будет описана процедура резервного копирования и восстановления Ubuntu Linux.

Резервное копирование (бэкап) Ubuntu

Выполняем в консоли: sudo rsync -aulv -x / /home/.backup/ А теперь давайте разберёмся с синтаксисом этой нехитрой команды
  • sudo - получаем права суперпользователя root;
  • rsync - выполняем команду резервного копирования и задаём дополнительные аргументы -aulv и -x ;
  • / -раздел, который подлежит копированию (системный раздел);
  • /home/.backup/ - место куда будут скопированы файлы (раздел пользователей).
Я специально поставил точку в начале имени директории, чтобы она была невидимой. А также указал, что владельцем директории является суперпользователь и доступ к ней только у него, чтобы лишний раз туда не лазить.

Восстановление Ubuntu через rsync

Допустим, у нас накрылась система и нужно восстановить убунту . Запускаем компьютер при помощи LiveCD с Linux, открываем консоль. Теперь нужно примонтировать (подключить) системный раздел и раздел пользователей, чтобы совершить восстановление системы и здесь можем пойти двумя путями. Первый способ основан на кликах мышки, а второй - на работе в консоли.

Способ №1

Открываем файловый менеджер и видим в левом углу список разделов жесткого диска на ПК. Подключаем их нажатием мышки, после чего они станут доступны для обзора, а их точка монтирования будет находится в директории /media/ . Определяем какой из разделов системный, а какой пользовательский. Недостаток такого способа в том, что разделы получат сложный адрес точки монтирования вроде /media/2F45115E1265048F . Запоминаем адрес точки монтирования системного и пользовательского разделов. Теперь переходим к непосредственному восстановлению, пропускаем раздел "Способ №2".

Способ №2

Для более продвинутых пользователей. Плюс в том, что мы сами назначим имя точкам монтирования и сможем обойтись без громозких адресов. 1. Выводим список разделов HDD: sudo fdisk -l эта команда покажет нам полный список разделов, имеющихся в системе. К примеру, у меня вот такая картинка. Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 771120 27342629 13285755 83 Linux /dev/sda2 27342630 822190634 397424002+ 83 Linux /dev/sda3 * 822190635 883639259 30724312+ 7 HPFS/NTFS/exFAT /dev/sda4 883639260 976768064 46564402+ 5 Расширенный /dev/sda5 883639323 976768064 46564371 7 HPFS/NTFS/exFAT В столбце «Система» легко увидеть, что файловая система Linux располагается на разделах:
  1. dev/sda1
  2. dev/sda2
2. Монтируем Linux разделы командой mount. Для этого сперва создадим точку монтирования для каждого раздела: sudo mkdir /media/1 sudo mkdir /media/2 Используем mount чтобы примонтировать разделы: sudo mount dev/sda1 /media/1 sudo mount dev/sda2 /media/2 3. Определяем какой из разделов является системным, а какой есть папка пользователя. Можем либо просто зайти через файловый менеджер в примонтированные каталоги и посмотреть какой из них системный. Или же, воспользуемся командой ls (показывает список файлов по заданному адресу): ls /media/1 ls /media/2 Если Вы не слишком опытный пользователь - подскажу, что системный раздел Linux, как правило, будет иметь следующие папки: bin, boot, dev, etc, mnt и т. д. Допустим мы установили, что системный раздел сейчас примонтирван по адресу /media/1 .

Непосредственное восстановление

1. Копируем файлы из резервной копии. Используем такую же команду: sudo rsync -aulv -x /media/2/.backup/ /media/1/
при использовании графического способа №1 вместо /media/1/ и /media/2/ у вас будут другие точки монтирования!
2. Отмонтируем разделы по окончанию копирования: sudo umount /media/1 sudo umount /media/2 Перезагружаем компьютер и наслаждаемся восстановленной из бэкапа Ubuntu.

Видеоурок по резервному восстановлению Ubuntu

На основании вышеописанного материала планирую записать показательный видеоурок по восстановлению Убунту в виртуальной системе.

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

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

Если вас всё же не пугают текстовые инструменты и командная строка, мы обсудим соответствующие альтернативные варианты в конце в главе «Рассмотрите также».

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

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

Идеальная программа резервного копирования Linux не должна быть сложной в изучении и работе, именно поэтому для нашего сравнения мы выбрали исключительно графические инструменты. Дело в том, что, к сожалению, многие новички по-прежнему считают, что командная строка нуждается в освоении, не рассматривая ее как альтернативное и интересное средство выполнения задач.

Back ln Time

Кабы не его ограниченная документация, вы были бы поражены этим инструментом. Он устанавливает две версии. Версия root работает с разрешениями root, необходимыми для доступа и резервного копирования определенных системных файлов. Версия non-root предназначена для резервного копирования личных файлов.

Интерфейс разделен на три панели. Слева находится список текущей системы под названием «Now», вместе с моментальными снимками.


Программа резервного копирования Back ln Time

Вы можете просматривать моментальные снимки для выбранного профиля, который выбирается в выпадающем меню в правой верхней части экрана. Папки в каждом моментальном снимке перечислены во второй панели, а третья панель - для просмотра содержимого каждой папки в моментальном снимке.

Программа резервного копирования Back ln Time

Вкладка Auto remove (Автоудаление) в диалоговом окне Settings (Настройки) предлагает множество опций точного управления удалением старых резервных копий для экономии места на диске.

Deja Dup

По сравнению с другими, Deja Dup намного проще в использовании. И объясняется это не простой структурой, а скорее недостатком функций. Возьмите, например, его встроенный планировщик, который позволяет выбрать создание резервных копий только каждый день или каждую неделю.


Вы также можете указать, хранить ли копии вечно, или только полгода либо год


Бэкап Linux с помощью программы Deja Dup

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

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


Бэкап Linux с помощью программы Deja Dup

Здесь нет опции настроить шифрование по умолчанию или задать дополнительные параметры, что предлагается в других инструментах.

Fwbackups

Вкладка по умолчанию Overview выдает приветственное сообщение, предлагающее для начала работы с инструментом использовать кнопки вверху. Вы можете нажать Help > Help или Ctrl+H для запуска онлайн-документации проекта.

Программа резервного копирования Fwbackups поддерживает создание нескольких наборов, и в каждый набор можно поместить файлы и папки из разных мест. Инструмент позволяет указать пункт назначения для ваших резервных копий - локальную папку или удаленную. Если вы выбираете второе, проект будет использовать SSH для передачи данных по сети. На вкладке Options (Simple) (Опции (Простые)) вы также можете решить включать в набор скрытые файлы.

Инструмент не создает инкрементных резервных копий по умолчанию. Выберите кнопку-переключатель Direct copy of the files and folders (Прямая копия файлов и папок) в заголовке Backup Format (Формат резервной копии), а затем нажмите Backups are incremental (Резервные копии инкрементные), чтобы включить инкрементные резервные копии.

Grsync

Интерфейс Grsync содержит панель инструментов и несколько кнопок. C помощью Grsync можно создать несколько сессий, и для каждой сессии надо указать источник и папку назначения во вкладке Basic options (Базовые опции). Внизу экрана есть несколько кнопок, таких как Preserve time (Сохранить время). Delete on destination (Удалить после доставки) и Skip newer (Пропустить более новые).

Хотя у проекта нет достойной упоминания документации, он предлагает удобные подсказки по инструменту при наведении мыши на любую кнопку или опцию.

Более глубокие настройки вы найдете во вкладке Advanced options (Расширенные опции). Отсюда можно контролировать включение в резервную копию подпапок исходной папки, приказать Grsync вычислить контрольную сумму файлов для сравнения содержимого вместо времени изменения, и многое другое.

Программа резервного копирования Grsync

Как и с инструментами на базе Rsync, можно также предоставить дополнительные командные опции для парсинга в Rsync.

LuckyBackup

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

Программа резервного копирования

Профиль можно выбрать из выпадающего списка в верхней левой части окна. У каждого профиля должна быть как минимум одна задача резервного копирования. Файлы и папки для включения в резервную копию указываются с помощью кнопки Advanced (Расширенное) в нижней левой части диалогового окна Create new task properties (Создать свойства новой задачи).

Программа резервного копирования LuckyBackup

К счастью, проект может похвастаться подробной документацией, где обсуждается его уникальная номенклатура, и вы даже можете получить доступ к справочнику пользователя, нажав Help > IiickyBackup Handbook или F1.

Выполнение резервных копий

При первом запуске Back In Time инструмент дает вам возможность импортировать файл настроек, если вы создавали таковой раньше, или продолжить с настройкой по умолчанию. Вы должны очень
аккуратно пройтись по разным вкладкам и указать все положенные детали, такие как файлы и папки для включения в резервное копирование и местоположение моментальных снимков. Инструмент также позволяет определить файлы/папки для исключения из резервного копирования. Когда это будет сделано, нажмите OK, чтобы сохранить настройки, и вас переведут в основной интерфейс Back ln Time.

Deja Dup (Déjà Dup) не выполняет резервного копирования файлов и работает только с папками. Более того, в качестве пункта назначения для ваших резервных копий он по умолчанию настроен на NextCIoud. Вы должны указать информацию о своей учетной записи, чтобы сохранить свои копии на этом сервисе, или задать альтернативный пункт назначения. По сравнению с другими инструментами в обзоре, Deja Dup выглядит довольно скудным, но именно благодаря своей простоте он и стал инструментом резервного копирования по умолчанию во многих настольных дистрибутивах. Все резервные копии по умолчанию защищены паролем, в отличие от Back In Time, где можно сделать базовую резервную копию, доступную для восстановления данных любому.

По умолчанию fwbackup хранит копии в tar-архиве и дает опцию выбора для резервного копирования файлов/папок, включать ли подпапки и скрытые файлы, и т.д.

Grsync и IuckyBackup взяли за основу Rsync и весьма похожи, но у IuckyBackup больше инструментов по умолчанию. Главное различие между ними в том, что в Grsync можно делать резервную копию только определенных файлов или одной папки. Невозможно создать резервную копию, объединяющую несколько папок. То есть, вы не можете скопировать ~∕Docuπτents∕Bills и ~∕Documents∕work-files а одну резервную копию. Хотя и Grsync, и IuckyBackup позволят вам сделать холостой прогон для имитации резервного копирования, второй также умеет сохранять со своими резервными копиями дополнительные детали, например, владельца, разрешения и время изменения.

Кроме Deja Dup, все инструменты позволяют задать профили или наборы резервных копий. Для каждого такого профиля, который также может иметь индивидуальную настройку, можно отвести разные файлы/папки для резервного копирования. В итоге у вас, например, могут быть разные политики для резервного копирования музыкальных файлов и системного журнала.

Взаимодействие с пользователем

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

Большинство инструментов в нашем обзоре основаны на мощных и многофункциональных инструментах командной строки, таких как Rsync и Duplicity. Это довольно продвинутые инструменты, и многие из них позволяют при создании резервных копий указать дополнительные операции для выполнения.

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

Установка и документация

Поскольку некоторые из этих инструментов - продукты разработчика-одиночки или небольшой команды разработчиков, всё, что они предлагают - это tar-архив исходника или репозиторий . Так что включение этих инструментов в пакеты для дистрибутивов дается на откуп разработчикам и энтузиастам, работающим с популярными дистрибутивами типа Fedora, Debian и Ubuntu. Увы, самые свежие версии большинства этих инструментов отсутствуют в программных репозиториях большинства дистрибутивов. Однако https://pkqs.org - хороший ресурс, если вы ищете устанавливаемые бинарники для этих инструментов.

Deja Dup имеется в репозиториях большинства дистрибутивов, но, за исключением Fedora, все остальные держат в репозиториях более старую версию. Репозитории Fedora также приютили самые последние версии всех остальных инструментов. Единственное исключение - Iwbackups, но вы легко найдете для него устанавливаемые бинарники на https://pkqs.org.

В других дистрибутивах вам придется устанавливать эти инструменты вручную. Учтите, что у них у всех имеется ряд зависимостей - и не все они есть в репозиториях.

Как и fwbackups, LuckyBackup и Back in Time предлагают очень подробную документацию. Wiki Gnome предлагает краткое введение в восстановление резервных копий с помощью Deja Dup, и встроенная подсказка тоже не слишком подробна, но охватывает создание и восстановление резервных копий. Хотя на странице Sourceforge для Grsync имеется wiki, но своей документации нет: однако руководства no Rsync помогают разобраться в его функциях.

Ни у одного из этих инструментов нет своего форума, но вы можете использовать официальные страницы GitHub и Sourceforge для связи с разработчиками и другими пользователями.

Функции безопасности

Решение об использовании шифрования в вашей резервной копии во многом зависит от типа копируемых данных. Точно так же использование сжатия зависит от ряда факторов, в том числе пункта назначения ваших резервных копий. Вам надо будет использовать сжатие, если вы планируете размешать резервные копии на удаленном местоположении в сети или в облаке.

С того момента, когда мы его рассматривали, IuckyBackup прекратил активную разработку, т.е. последний релиз по-прежнему поддерживается, но разработчик не занимается добавлением новых функций. Хотя проект планировал добавить поддержку создания сжатых и шифрованных резервных копий, этого не произошло.

Back In Time не поддерживает сжатия, но с его помощью можно создавать локальные шифрованные резервные копии. Для защиты ваших данных используется EncFS. но программа предупреждает вас о недавних векторах атаки для EncFS и о присущем риске безопасности.

Deja Dup - графический интерфейс Duplicity, и для обеспечения основных функций безопасности использует этот мощный инструмент. Для шифрования ваших резервных копий применяется GPG , и это означает, что все ваши резервные копии защищены паролем. Хотя более старые версии давали опцию не шифровать резервные копии, сейчас это уже не работает. Инструмент настаивает на вводе пользователем пароля для каждой резервной копии, и по-другому не согласен.

В противоположность Deja Dup, Iwbackups не поддерживает шифрования, но позволяет обратиться к gzip или bzip2 для сжатия резервных копий. Все резервные копии хранятся в виде tar-архивов. В отличие от других инструментов, Grsync и IuckyBackup не поддерживают ни сжатия, ни шифрования, и резервные копии, просто создавая копии исходных файлов/папок.

Дополнительные функции

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

Желая клонировать исходную папку в пункт назначения, вы можете настроить IuckyBackup, чтобы он не создавал дополнительной папки.

Также поддерживаются более продвинутые функции, например, не сохранять владельца файла и разрешения, если пункт назначения - раздел с NTFS. При создании резервных копий также можно выбрать поддержку символических ссылок. Вдобавок имеется опция Synchronise, обеспечивающая идентичность исходной и целевой папки. Настроив резервную копию по своему усмотрению, можете нажать на кнопку Validate, чтобы увидеть соответствующую команду Rsync, которая выполнится для создания резервной копии.

По умолчанию Grsync создает рекурсивные резервные копии данных, т.е. автоматически делает резервные копии всех подпапок, обнаруженных в исходной папке; но вы можете изменить это из вкладки Advanced Options (Расширенные опции). Как и в IuckyBackup, можно просмотреть соответствующую команду Rsync, нажав File > Rsync command line. Интерфейсы Rsync. Back In Time, IuckyBackup и Grsync позволяют определить дополнительные команды, которые вы хотите исполнить перед резервным копированием или по его завершении. Все три также дают опцию проверки контрольной суммы, чтобы узнать, произошли ли в файлах какие-то изменения перед созданием резервной копии.

Deja Dup в плане дополнительных функций не предлагает ничего особенного. Он позволяет вам указать срок хранения ваших резервных копий, например, месяц, перед тем, как удалить их.

Восстановление

По части восстановления, Grsync и IuckyBackup - полярные противоположности. Поскольку Grsync просто создает копию исходной папки в месте назначения, для восстановления надо всего лишь
скопировать обратно требуемые файлы.

А вот у IuckyBackup процесс восстановления очень громоздкий. По умолчанию копируется содержимое исходной папки в место назначения. А значит, если вы случайно удалите файл в исходном местоположении и снова запустите резервное копирование, удаленный файл исчезнет и из резервной копии. Чтобы предотвратить подобную неприятность, вы можете попросить инструмент сохранять несколько версий резервной копии, и затем вы сможете вернуться к любой из них или, в порядке альтернативы, можно отменить выбор этой опции. Вместо кнопки восстановления инструмент предлагает создать задачу восстановления для каждой задачи в вашем профиле, и вы можете уточнить настройки для каждой задачи восстановления. Хотя это довольно сложно, справочник описывает данный процесс во всех подробностях.

Содержимое разных моментальных снимков, созданных с помощью Back In Time, можно просмотреть из Timeline. Вы можете выбрать восстановление файлов и папок из резервной копии в их исходное местоположение или указать для них новый путь, и инструмент восстановит их с разрешениями; при создании резервной копии сохраняются ACL и все дополнительные атрибуты.

Deja Dup тоже позволяет восстанавливать в исходную папку или в указанное местоположение. Поскольку инструмент не дает создавать копии без паролей, при восстановлении папок из резервной копии вам предложат ввести пароль.

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

Кроме IuckyBackup и Back In Time, прочие инструменты не дают возможности выбрать определенные файлы для восстановления, и восстанавливают всё содержимое резервной копии.

Вердикт

Мы загнали себя в очень сложную ситуацию, решив в нашем обзоре сосредоточиться только на графических инструментах. Если бы мы представили здесь смесь инструментов графических и CLI, Сравнение было бы совсем другим.

Для начала, большинство инструментов в нашем обзоре лучших программ резервного копирования Linux дышат на ладан. За исключением Deja Dup, являющегося утилитой резервного копирования по умолчанию в нескольких популярных дистрибутивах, остальные уже не могут похвастаться активной разработкой. Справедливости ради, отметим, что IuckyBackup до сих пор поддерживается, и его последний релиз вышел в октябре 2017 г. Но с учетом того факта, что он не поддерживает сжатия и шифрования, IuckyBackup — несмотря на его превосходный набор функций - на пьедестале победителей может занять только последнее место.

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

При использовании Deja Dup нельзя выбрать для резервного копирования отдельные файлы или создать наборы профилей, как в других инструментах. Ему также не хватает поддержки хранения сжатых архивов; но зато он использует GPG для защиты ваших резервных копий паролем. Хуже того, вы не можете задавать резервным копиям имена при их создании, что затрудняет распознавание той копии, которую вы хотите восстановить. Тот факт, что Deja Dup еще разрабатывается, и что он входит по умолчанию в такие дистрибутивы, как Fedora, вполне резонная причина присудить ему второе место.

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

Всегда держать резервную копию данных - это отличная практика, которая в будущем может сэкономить вам много времени. Резервное копирование Linux может выполняться вручную или автоматически. У многих утилит резервного копирования есть много дополнительных функций, которые позволяют настроить тип, время, файлы для выполнения копирования, протоколирование операций и многое другое.

В этой статье мы рассмотрим лучшие программы резервного копирования Linux, которые можно использовать как на серверах, так и на персональных компьютерах.

Это очень популярная среди опытных пользователей Linux утилита командной строки для резервного копирования linux. У нее очень много функций, включая инкрементное резервное копирование, обновление дерева каталогов и файловой системы, сохранение прав доступа для файлов, владельца, ссылок, а также работа с резервными копиями как на локальной машине, так и на удаленной.

В утилиты также есть графический интерфейс под названием Grsync. Но главное преимущество в том, что все работы по резервному копированию могут быть автоматизированы с помощью скриптов и cron.

Это бесплатный инструмент с открытым исходным кодом, который можно запускать как в Windows, так и в Linux. У программы простой и интуитивно понятный интерфейс, поэтому пользователи могут очень просто настроить и делать резервные копии.

Основные преимущества:

  • Простой в использовании интерфейс
  • Гибкость в настройке резервного копирования
  • Уделенное резервное копирование
  • Резервное копирование всей файловой системы
  • Исключение файлов и каталогов из копирования и многое другое.

3. Bacula

Это набор средств с открытым исходным кодом для резервного копирования, восстановления и проверки программного обеспечения. Он разработан для использования в условиях предприятий. Здесь есть такие функции, как удаленное резервное копирование, тонкая настройка и многое другое.

Программа имеет архитектуру сети и состоит из таких компонентов:

  • director - программа, которая управляет процессом резервного копирования.
  • console - инструмент, позволяющий пользователю взаимодействовать с director.
  • file - программа, которая устанавливается на компьютер и выполняет резервное копирование linux.
  • repostiry - используется для чтения и записи на диск.
  • directory - отвечает за используемые базы данных.
  • monitor - отслеживает все события, происходящие в других частях программы.

4. Backupninja

Эта мощная программа для резервного копирования позволяет создавать резервные копии файлов конфигурации и сохранять их в каталоге /etc/backup.d/.

Особенности программы:

  • Удобная настройка с помощью файлов ini
  • Использование сценариев для обработки новых типов резервных копий.
  • Отправка сообщений по электронной почте.
  • Легко выполняется создание резервных копий через терминал.
  • Интеграция с Linux-Vservers.

5. Simple Backup Suite (sbackup)

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

Особенности программы:

  • Создание сжатых и несжатых копий.
  • Поддержка нескольких профилей резервного копирования.
  • Поддержка регистрации, уведомлений по новой почте.
  • Планирование резервного копирования и копирование вручную.
  • Разделение несжатых копий на несколько частей.
  • Поддержка локального и удаленного резервного копирования linux.

6. Kbackup

Это простой инструмент резервного копирования для Unix и Linux. Он может создавать архивы и сжимать их с помощью gzip.

Преимущества программы резервного копирования linux:

  • Удобный интерфейс на основе меню
  • Поддержка сжатия, шифрования, двойной буферизации
  • Автоматическое не обслуживаемое резервное копирование
  • Высокая надежность
  • Поддержка полного и инкрементного резервного копирования
  • Резервное копирование linux по сети
  • Обширная документация

7. BackupPC

Это кроссплатформенное программное обеспечение для резервного копирования, которое может работать на Unix, Linux, Windows и MacOS. Оно разработано в первую очередь для предприятий с большой нагрузкой, но может использоваться не только на серверах, но и на персональных компьютерах.

Возможности программы:

  • Сжатие файлов для уменьшения размера
  • Нет необходимости в клиентской части программы
  • Гибкость резервного копирования
  • Гибкость настройки параметров
  • Уведомление пользователей о необходимости резервного копирования.

8. Amanda

Amanda - это программное обеспечение с открытым исходным кодом, которое работает на Unix, Linux и Windows. Здесь поддерживается использование системных утилит для выполнения резервного копирования, например, GNU tar в Linux. На компьютере с Windows используется собственная утилита. Пользователи могут настроить сервер для хранения копий на одной из машин сети.

9. Back Time

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

Поддерживаются такие функции:

  • Установка места хранения для создания снимков
  • Ручные и автоматические резервные копии
  • Словари для резервного копирования.

10. Mondorescue

Это бесплатное программное обеспечение для резервного копирования и восстановления системы, в котором есть все что нужно. Вы можете выполнять резервное копирование персонального компьютера, рабочих станций или сервреов, жестких дисков, NFS шар, CD, DVD и многое другое.

У программы также есть возможность восстановления данных из резервной копии после возникновения каких-либо проблем.

11. Box Backup Tool

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

  • Резервное копирование онлайн
  • Демон для автоматического резервного копирования
  • Хранение резервных копий в файлах
  • Сжатие данных и шифрование
  • Выбор файлов и папок для копирования.

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

Функциональность:

  • Сохранение прав собственности файлов
  • Создание нескольких резервных копий файлов
  • Продвинутые опции для файлов и каталогов
  • Позволяет использовать опции rsync.

13. Areca

Это программа для резервного копирования с открытым исходным кодом, ориентированная на использование обычными пользователями. Она позволяет выбрать нужные файлы для копирования, выбрать метод и место хранения.

Программа поддерживает такие функции:

  • Уведомления по электронной почте о процессе резервного копирования
  • Простота в использовании и настройке
  • Просмотр содержимого архивов.

14. Bareos Data Protection

Bareos Data Protection - это набор программ, который позволяет пользователям создавать резервные копии, а также восстанавливать и защищать данные в операционных системах семейства Linux. Программа реализована на основе Bacula и работает как сеть клиент - сервер.

Основные функциональные возможности доступны бесплатно, но для использования профессиональных функций требуется платить.

Выводы

Всегда помните, что резервное копирование данных linux очень важно, оно помогает предотвратить потерю данных. Для Linux есть огромное количество программ резервного копирования Linux, которые помогут регулярно копировать ваши данные.

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

Оригинал: Backing up Linux and other Unix(-like) systems

Дата перевода: декабрь 2011 г.

«Люди делятся на две категории: одни уже делают бэкапы, а у других пока еще не отказывал жесткий диск», — неизвестный автор.

1. Введение

Тема резервного копирования рабочей Unix-подобной операционной системы (как правило, Linux) регулярно всплывает в списках рассылки и форумах, посвященных Linux. И неизменно кто-нибудь советует просто архивировать с помощью tar cvfz backup.tgz /bin /boot /etc ... К сожалению, для создания правильной резервной копии понадобится больше усилий. В этой статье я расскажу о многих (возможно, не обо всех) трудностях и деталях, на которые следует обратить внимание при резервном копировании.

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

Также учтите, что в этой статье в основном описывается процесс резервного копирования на внешние носители или удаленные машины. Если важна сохранность данных, я также настоятельно рекомендую использовать RAID -массивы. Хотя RAID и не поможет при пожаре, землетрясении или порче данных пользователем, это хорошая защита при выходе дисков из строя. Меня это не раз выручало. В дополнение не забудьте и об источнике бесперебойного питания.

Хотя мой личный опыт не выходит за рамки Linux, вопросы, обсуждаемые в этом тексте, должны (могут) относиться к большинству Unix-подобных систем.

2. Резервная копия — это не только данные

В правильном бэкапе сохраняются не только данные. Там содержатся и данные о данных: метаданные. Также копируются атрибуты конкретной файловой системы и файлы специальных устройств, необходимые для работы ОС. Жизненно важно, чтобы носитель резервной копии и программы для работы с ней могли обеспечить такое копирование. Например, категорически не рекомендую делать резервную копию файловой системы Ext3 (стандартная файловая система в Linux) на разделы, форматированные в FAT32/FAT16 (допотопная файловая система от Microsoft, все еще встречающаяся на USB-накопителях и подобных устройствах, хотя их можно, конечно же, форматировать в любую файловую систему). Этот раздел посвящен как раз метаданным и специальным файлам.

2.1. Метаданные файлов

На разделах с ФС Ext3 метаданные файлов включают в себя: время изменения файла, время изменения индексного дескриптора (inode), время последнего доступа, идентификаторы пользователя и группы, а также права доступа к файлам и каталогам. Если есть расширенные атрибуты, метаданных может быть намного больше, в основном за счет информации из списка управления доступом (ACL , Access Control List). Чем больше данных будет скопировано, тем лучше. Разумеется, если не сохранить и не восстановить права доступа, это приведет к неработоспособности системы. Это верно даже для таких простых вещей, как mtime (modification time, время изменения содержимого файла). Например, в дистрибутиве Gentoo Linux mtime используется для того, чтобы определить, относятся ли файлы к конкретному пакету или они были изменены потом. Если не восстановить верное время изменения файлов, система управления пакетами будет полностью неработоспособна.

В зависимости от используемого ПО могут потребоваться разные шаги для сохранения всей этой информации. Например, при использовании tar с параметрами по умолчанию нельзя сохранить верную информацию о правах доступа. Если провести быстрый тест, может показаться, что это возможно, но это обманчивое впечатление. С параметрами по умолчанию tar распаковывает файлы с настройками umask (user file creation mode mask, маска режима создания пользовательских файлов) текущего пользователя. Если текущие настройки umask достаточно свободные, то файлы могут быть восстановлены со своими настройками прав, но при более жестких параметрах umask эти ограничения будут применены и к восстановленным файлам. Чтобы это предотвратить, tar надо использовать с параметром --preserve-permissions .

Информация о владельцах файлов может храниться двумя способами: в числовом и в текстовом виде. Многие программы для резервного копирования предпочитают текстовое представление для удобства чтения человеком, но при создании резервной копии всей системы это нежелательно. Вполне вероятно, что вы будете восстанавливать систему с помощью какого-нибудь Live CD, тогда как резервная копия создавалась на самой копируемой системе. При восстановлении файлы, принадлежащие пользователю bin , получат идентификатор (ID) файловой системы, основанный на данных файла /etc/passwd с Live CD. Если это будет, например, ID 2, но тот же идентификатор в восстанавливаемой системе присвоен пользователю daemon , то файлы, принадлежащие bin , будут принадлежать daemon . Поэтому всегда следует хранить информацию о владельцах файлов в числовом виде. Для этого в tar есть параметр --numeric-owner . В rdiff-backup существует аналогичный параметр --preserve-numerical-ids , добавленный с версии 1.1.0 по моей просьбе. В dar никогда не будет поддержки текстового представления. Мы обсуждали с автором этот вопрос, и он согласился с моими аргументами.

Некоторые программы для резервного копирования (например, tar и dar ) могут восстанавливать atime (access time, время последнего доступа) после чтения файлов во время создания копии. Это делается для того, чтобы копии максимально точно соответствовали оригиналу. Этой функцией следует пользоваться с осторожностью, так как восстановление atime изменяет ctime (change time, время изменения индексного дескриптора). С этим ничего не поделаешь, так как ctime невозможно установить принудительно. В man-странице dar говорится, что NNTP-сервер Leafnode при кешировании рассчитывает, что время последнего доступа восстановлено, но обычно очень редко требуется восстанавливать atime. По моему мнению, для любой программы предполагать, что значение atime восстановлено в резервной копии — это серьезный изъян. Время доступа может меняться произвольно, даже пользователем, не имеющим доступа на запись файла. К тому же программы для автоматического индексирования, такие как Beagle, могут изменять atime. Кроме того, изменение в ctime может вызвать срабатывание отдельных программ для защиты компьютера. Как уже говорилось, ctime нельзя установить принудительно, а значит, если у файла изменено значение ctime при неизменном со времени последней проверки mtime, этот файл мог быть заменен другим, обычно это свидетельствует о внедрении руткита. Следовательно, сохранять время доступа имеет смысл, только если вы абсолютно точно знаете, что делаете. По умолчанию dar сохраняет atime. Изменения, исправляющие такое поведение, уже внесены в CVS, и скорее всего появятся в версии 2.4.0. Для старых версий следует использовать параметр --alter=atime .

2.2. Специальные файлы

2.2.1. Ссылки

Ссылки бывают двух типов: символические и жесткие. Символическая ссылка, или симлинк, — это просто указатель на другое место файловой системы. Жесткая ссылка, или хардлинк — это дополнительный указатель для inode (индексного дескриптора).

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

Жесткие ссылки требуют несколько больше внимания. Как уже говорилось, жесткая ссылка — это в принципе второе (третье, четвертое...) имя файла. Если у вас есть файл A и ссылающийся на него файл B, они ведут себя, как если бы у вас было два файла. Если оба файла по 1 ГБ, они будут занимать 1 ГБ на диске, но приложения будут считать, что они занимают 2 ГБ. Так как файл B — не просто ссылка на A, а другое имя для того же файла, можно безболезненно удалить файл A. Файл B не будет удален при удалении файла A.

Большинство приложений для резервного копирования поддерживают жесткие ссылки, но только если они все находятся в одном дереве каталогов. Если копировать каталоги /bin , /etc , /usr и т. д. отдельной командой cp -a для каждого, то информация о жестких ссылках не будет распознана и скопирована. Так как жесткие ссылки не могут указывать на файл в другой файловой системе, достаточно копировать и восстанавливать по одному разделу за раз. Например, если каталог /home вынесен на отдельный раздел, можно сделать отдельный архив с корневым каталогом / без /home и отдельный архив только с /home . Если создавать архив, включающий в себя все точки монтирования, понадобятся дополнительные действия, чтобы данные восстанавливались на нужных разделах. Если программе не мешают существующие каталоги, можно перед восстановлением данных создать точки монтирования с теми же именами в новой файловой системе. В противном случае должен помочь такой вариант: сначала восстановить данные на один раздел, а затем скопировать части на свои разделы с помощью cp -a . Не используйте mv для перемещения данных. Представьте, что будет, если программа аварийно завершится, не закончив работу.

В Linux и других Unix-подобных операционных системах широко используются жесткие ссылки, поэтому убедитесь на 100%, что целостность ссылок не нарушена.

2.2.2. Разреженные файлы

Разреженный файл (sparse file) — файл, в котором нули не записываются на диск как нули, а просто не размечаются. Благодаря этому, например, гигабайтный файл с большим количеством пустого места может занимать всего мегабайт. Такие файлы использует торрент-клиент Azureus.

В программах для резервного копирования поддержка разреженных файлов есть далеко не всегда. При использовании программы, не поддерживающей разреженные файлы, файл считывается как обычный. Данные в файле остаются те же, но он может занимать гораздо больше места. Будьте осторожны, резервная копия может не вместиться на предназначенный для нее диск при восстановлении, если разреженные файлы создаются как обычные.

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

2.2.3. Другие

Существуют и другие специальные файлы, такие как FIFO , именованные конвейеры (named pipes), блочные устройства и т. д. Они ничем особо не примечательны и большинство приложений знает, как с ними работать. Но надо обязательно указывать правильные параметры. Например, cp без параметра -a попытается скопировать данные именованного конвейера вместо того, чтобы воссоздать его.

Есть также и специальные каталоги: lost+found (в файловых системах Ext2/3/4). На самом деле это вообще не каталог, его невозможно создать программой mkdir . Вместо нее используйте mklost+found . Если не знаете, lost+found используется для хранения файлов, восстановленных программой e2fsck при повреждении файловой системы.

3. Что можно исключить

Чтобы сэкономить место на носителе с резервной копией, можно не сохранять некоторые каталоги. У меня в Gentoo Linux это /usr/portage/ и /var/tmp/portage .

Есть еще особые файловые системы, монтируемые в корневую, которые динамически создаются при загрузке, их не надо сохранять. В моей системе это каталоги /sys , /proc , /lost+found , /media (в котором только динамически создаваемые каталоги для съемных носителей) и /dev (потому что я использую udev ). Я также не сохраняю /mnt , но в других системах может быть необходимость в его резервном копировании.

4. Данные приложений

Создавая резервную копию работающей системы, не следует забывать о программах, которые могут изменить свои данные во время копирования. Удачный пример — это базы данных, такие как MySQL или PostgreSQL, а также данные почтовых программ (файлы mbox более уязвимы, чем maildir ). Файлы данных (обычно хранящиеся где-нибудь в /var ) могут быть подвержены изменениям в работающей системе. Это может быть вызвано обычными операциями или автоматической очисткой базы данных. Никогда не полагайтесь на файлы с данными работающей базы данных, LDAP-сервера, репозитория Subversion или любых подобных программ, которые вы используете.

Если остановить работу этих программ перед резервным копированием не представляется возможным, запланируйте задания по периодическому сохранению дампов базы данных (с помощью pg_dump для PostgreSQL, slapcat для OpenLDAP, svnadmin dump или svn-backup-dumps для Subversion и т. д.) в файлах с пометкой о времени создания. Затем можно сделать резервные копии этих файлов, это должно быть безопасно. Везде, где возможно, пользуйтесь «родными» утилитами для создания дампов, такими как pg_dump и slapcat для PostgreSQL и OpenLDAP соответственно.

Создание запланированных дампов всегда полезно, независимо от ситуации. При внезапном повреждении данных останутся дампы предыдущих состояний базы и не все будет потеряно. А если дамп хранится в локальной файловой системе, не придется мучиться с поиском в резервных копиях, когда возникнет необходимость восстановить базу данных (или иные данные приложений).

5. Основные меры предосторожности

В этом разделе приведены некоторые меры предосторожности и принципы, о которых лучше не забывать.

5.1. Инкрементное резервное копирование и mtime

Некоторые утилиты для резервного копирования поддерживают инкрементные копии, то есть копируют только данные, изменившиеся со времени последнего бэкапа. Отличный пример — rdiff-backup , он кроме этого ничего и не поддерживает. Будьте осторожны с инкрементным копированием и выясните, как программа определяет, изменились ли данные. Лучше всего — проверка контрольной суммы, но она занимает много времени. На втором месте надежный и быстрый способ — проверка ctime. Правда, файловая система тоже должна поддерживать ctime, но большинство систем это могут. Исключение — файловые системы, которые вы вряд ли будете использовать (например, FAT32).

Некоторые утилиты используют для отслеживания изменений в файлах только mtime или комбинацию mtime + размер. Это ненадежный метод. Например, у образов дисков, смонтированных как петлевые устройства с помощью losetup , не меняется mtime при монтировании устройства и записи на него. Вот пример из моей личной практики: я сделал образ диска, требующего серьезного исправления файловой системы, с помощью ddrescue . Для начала я решил сделать ежедневный бэкап. Мне пришло в голову проверить, изменяется ли mtime файла образа диска при записи на смонтированное петлевое устройство, потому что были подозрения, что монтирование не воспринимается системой как открытие файла. Подозрения подтвердились. Чтобы файл попал в резервную копию, приходилось сначала изменить его время модификации с помощью touch .

Еще один небольшой пример — редактирование ID3-тегов в программе Easytag. В настройках Easytag есть параметр «Сохранить время модификации файла». Если размер файла при этом не изменится, например если изменить один символ в теге, время модификации и размер будут идентичными и изменение файла не будет замечено.

В rsync есть возможность на самом деле проверять, изменился ли файл, но это очень долгий процесс. Например, сканирование моего каталога /home на наличие измененных файлов занимает больше времени, чем создание полной резервной копии без сжатия с помощью dar . Более подробную информацию вы найдете в разделе 6.4 ниже.

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

5.2. Резервное копирование на другую файловую систему

Просто копировать данные на другую файловую систему — пожалуй, не лучшее решение. Команды cp -a может быть вполне достаточно для ваших нужд (при условии, что копирование происходит в файловую систему с поддержкой всего, что есть в исходной файловой системе и, в случае cp , если не используются расширенные атрибуты). Меня заботит другое: слишком легко случайно изменить файл или его метаданные, открыв и сохранив его. Надежнее сохранять данные в архивах, как это делают tar или dar .

Так как rsync тоже просто сохраняет метаданные в файловой системе, эта опасность относится и к rsync .

Пользуясь информацией из этой статьи, вы сможете решить для себя, мешает вам это или нет. В этом подходе есть и определенные преимущества, такие как возможность быстро найти и скопировать отдельный файл из резервной копии.

5.3. Размер архива

У многих файловых систем (или сетевых протоколов) есть серьезные ограничения на размер файла. При резервном копировании с помощью программ, создающих архивы, надо учитывать размер архива. Как правило, лучше ограничивать размер двумя гигабайтами (или, на всякий случай, чуть меньше). Файлы такого размера можно сохранять в файловых системах ISO DVD и FAT32. Я предпочитаю размер в 650 МБ, чтобы можно было записать файлы на 74-минутные компакт-диски.

Даже если вы не собираетесь хранить резервные копии на подобных файловых системах, все равно лучше разделять архивы на части, чтобы иметь возможность записать их на CD или DVD, если понадобится.

5.4. Восстановление

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

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

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

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

6.1. Dar

Прежде всего — предупреждение. Настоятельно рекомендую пользоваться версией 2.3.3 (последний стабильный выпуск на момент написания статьи) или более новой, так как в ней исправлена серьезная ошибка. Подробный отчет можно прочитать в новостной рассылке dar .

Dar — хорошо продуманная программа, в ней предусмотрены решения для классических проблем. Например, она поставляется вместе со статически скомпилированным бинарником, который можно скопировать на первый диск с резервной копией. В dar поддерживается автоматическое разделение архивов на тома и есть возможность отдельно указать размер первого тома, чтобы оставить место на первом диске, например, для создания загрузочного CD. Также можно запускать какую-нибудь команду между созданием томов, так что можно записывать их на CD, вычислить информацию для контроля четности и т. д. И, что очень важно, параметры по умолчанию хорошо подобраны за исключением, пожалуй, сохранения atime (см. выше).

Я использую такую команду для сохранения своей системы на внешнем USB-диске примерно раз в неделю с помощью dar 2.2.6 (параметры, относящиеся к конкретной машине, удалены или слегка абстрагированы).

dar --execute "par2 c -r5 \"%p/%b.%n.par2\" \"%p/%b.%n.%e\"" --alter=atime --empty-dir \ --fs-root / --noconf --create НАЗВАНИЕ_АРХИВА --slice 620M --first-slice 600M -z6 \ -an -Z "*.ogg" -Z "*.avi" -Z "*.mp?" -Z "*.pk3" -Z "*.flac" -Z "*.zip" -Z "*.tgz" \ -Z "*.gz" -Z "*.gzip" -Z "*.bz2" -Z "*.bzip2" -Z "*.mov" -Z "*.rar" -Z "*.jar" \ --prune lost+found --prune usr/portage/ --prune var/tmp/portage --prune media \ --prune proc --prune mnt --prune sys

С помощью параметра --execute я вычисляю информацию для контроля четности с помощью par2 . Передаваемые программе par2 тайные знаки превращаются в имя создаваемого par2 файла и имя тома архива. Параметр --alter=atime уже обсуждался выше; --empty-dir сохраняет в архиве пустые каталоги для всех исключенных из бэкапа каталогов; -an и следующий за ним -Z по нечувствительной к регистру маске указывают, какие файлы не следует сжимать. Степень сжатия указывается с помощью -z6 . Для исключения каталогов используется --prune . Остальное должно быть понятно.

Кроме того я обычно ежедневно создаю с помощью dar резервную копию /home без сжатия. Размер получается около 6 ГБ, копирование занимает около 10 минут. Вполне приемлемо, на мой взгляд. Но по мере увеличения размера домашнего каталога я переключаюсь на rsync и затем на rdiff-backup и мирюсь с потерями времени на проверку изменений.

Восстановление из архива dar должно быть безопасно с параметрами по умолчанию (очень важный аспект, по моему мнению), но на всякий случай прочитайте man-страницу.

6.2. GNU tar

GNU tar может все, что может потребоваться для надежного резервного копирования (хотя, надо заметить, я не знаю, насколько хорошо там поддерживаются расширенные атрибуты и поддерживаются ли вообще). Однако следует быть внимательным и не забыть о параметре --numeric-owner . Это же, возможно, касается и параметра same-owner , но быстрый тест и просмотр руководства дают понять, что параметр --preserve-permissions (который включен по умолчанию для пользователя root ) это подразумевает. Если вы вдруг забыли использовать параметр --numeric-owner для команды резервного копирования, его можно задать в процессе восстановления. Его использование при резервном копировании должно, по идее, исключить необходимость его указания при восстановлении, так как с этим параметром tar не сохраняет в архиве имена владельцев в текстовом виде.

В tar также нет достойных средств для разделения на тома. Встречаются рекомендации использовать split , но это не слишком удобно. Чтобы использовать split , сначала надо выделить место для создания архива, потом место для сохранения разделенных частей. Восстанавливать файлы тоже хлопотно, сначала надо соединить сегменты с помощью cat , и только потом можно будет распаковать архив.

Еще на одну проблему tar мне указал один из читателей. В версии 1.15.1 программа повреждала разреженные файлы размером более 4 ГБ . В современных версиях tar (1.20 и выше) вроде бы нет этой проблемы, но лучше лишний раз проверить.

Я советую пользоваться tar только в том случае, если вас не смущают ограничения и необходимость указывать правильные параметры.

6.3. Rdiff-backup

При оценке надежности rdiff-backup надо учитывать метод отслеживания изменений, который применяется в этой программе. Если часто приходится работать с образами дисков, прочитайте пример, приведенный выше. Как-то раз мы обсуждали с автором альтернативный способ отслеживания изменений, но ему было некогда и дискуссия так ни к чему и не привела. Возможно, в будущем в программе появится надежный способ отслеживания изменений на основе контрольных сумм или ctime. Учтите, что rdiff-backup сохраняет контрольные суммы в своих метаданных с версии 1.1.1 (05.11.2005), но до сих пор не использует их для отслеживания изменений в файлах (на момент версии 1.2.1, 24.08.2008).

Кроме того, при восстановлении с помощью rdiff-backup из полной копии системы из-под другой ОС, например Live CD, не забывайте указывать параметр --preserve-numerical-ids , иначе у файлов будут неправильно указан владелец. Об этом слишком легко забыть (проверено на собственном опыте).

Между тем, если вы полностью уверены, что вас не коснется проблема с mtime, описанная выше, например в /home , можно смело пользоваться этой программой. Не исключено, что мои опасения покажутся вам преувеличенными, и вы можете копировать всю систему несмотря ни на что. Я решил, что опасность не слишком велика и пользуюсь rdiff-backup . Это очень надежная программа и одна из лучших для инкрементного копирования, на мой взгляд.

6.4. Rsync

Моя главная проблема с rsync — то, что метаданные программы создаются заново в целевой файловой системе. Это не только ограничивает использование целевой файловой системы, но и вообще странно, о чем написано выше. Кроме того, rsync — одна из тех утилит, которые проверяют наличие изменений в файлах по комбинации mtime и размера. И, так как ее параметры для надежной проверки наличия изменений в файлах (--ignore-times и особенно --checksum ) замедляют работу программы, dar без сжатия может быть предпочтительнее. Разумеется, только при резервном копировании на быстрый локальный носитель.

Здесь важно отметить, что rsync не сохраняет файлы метаданных, и поэтому сравнивает mtime и размер файла с копией. Это означает, что только при использовании параметра --times для сохранения mtime файлов проверка изменений не сработает, как было описано ранее.

У rsync есть особый ключ --archive , специально предназначенный для сохранения всех метаданных. Правда, этого параметра все равно недостаточно. Например, по умолчанию не сохраняется информация о жестких ссылках, потому что это слишком медленно. Также не сохраняются жесткие ссылки, расширенные атрибуты и списки управления доступом. Поэтому надо дополнительно указывать --hard-links , --acls и --xattrs (rsync поддерживает расширенные атрибуты с третьей версии, кажется). Также желательно добавить параметры --sparse и --numeric-ids по описанным выше причинам. Я бы добавил еще --delete --delete-excluded --delete-after , чтобы в резервную копию не попали старые файлы. Параметр --delete-after необходим, так как иначе в случае сбоя в процессе копирования файлы, переименованные после создания последней резервной копии (старый файл удален, новый создан), будут удалены до того, как новый файл скопирован. Лучше сначала скопировать новый файл, а затем удалить старый.

Также важно создать правильную команду для восстановления. Так как восстановленная копия должна быть идентична источнику, должно быть достаточно указать те же параметры, что и при создании резервной копии.

Некоторое время назад вышла третья версия rsync . Там появились интересные новые возможности, такие как поддержка списков управления доступом и расширенных атрибутов. Могут возникнуть проблемы с определением изменений, но, особенно начиная с третьей версии, программу стоит использовать (возможно, только для резервного копирования отдельных частей), потому что она весьма эффективна и продуманна.

6.5. GNU cp

Я всегда думал, что cp -a сохраняет все, что нужно, но оказалось, что информация списков управления доступом и, возможно, расширенных атрибутов, вообще не копируется. Я не пользуюсь списками управления доступом, поэтому не могу привести каких-либо тестов, так что пробуйте сами.

6.6. Clonezilla

Clonezilla — специализированный Live CD для создания образов файловых систем различных типов, в том числе NTFS. За исключением некоторых странностей интерфейса, это прекрасно спроектированная программа. Она оправдывает все ожидания, например использует dd для резервного копирования MBR и области между MBR и первым разделом. Она даже запускает sync по завершении. Такое впечатление, что программа читала эту статью:) И, возможно, самое важное: можно извлекать компакт-диск при выключении или перезагрузке!

6.7. Другие инструменты клонирования разделов

Программы для клонирования разделов, такие как g4u , partimage , clonezilla (или dd ...) могут быть очень удобны, но у них (в основном) есть один существенный недостаток: они (зачастую) требуют, чтобы данные восстанавливались на идентичный диск и (или) такие же разделы. Если диск сыплется и надо найти новый, это может быть сложно.

Однако это не всегда так. Недавно я скопировал с помощью dd целый диск на другой (на 1 ГБ больше) командой dd if=/dev/sda of=/dev/sdb . На новом диске теперь есть неразмеченная область, но он работает отлично. Windows XP, установленная на этом разделе, загружается с нового диска, хотя Windows XP капризна в таких делах. В любом случае, восстановление на меньший раздел будет проблематично. Иногда можно импровизировать, но лучше этого избегать. Если вы собираетесь использовать этот метод резервного копирования, лучше удостовериться, что запасной диск имеет достаточный размер. Этого можно добиться, предполагая, что размер дисков со временем увеличивается, или пользуясь небольшими разделами (но не слишком маленькими, чтобы не допустить фрагментации).

Не слишком «умные» программы для клонирования, такие как g4u или dd , тратят огромное количество времени, так как копируют каждый блок файловой системы, в том числе и незанятые. И, если эти незанятые блоки заранее не записаны нулями, готовый образ получается очень большим.

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

7. Автоматизация

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

Вот пример, демонстрирующий важность этого момента: предположим, что мы делаем резервную копию с помощью tar . Сначала делаем новую копию, затем удаляем старую. Если дисковый кеш не синхронизирован и во время удаления старой копии отключилось питание, может выйти так, что и старая, и новая копии будут повреждены. Мне говорили, что это бессмысленно, потому что данные в кеше упорядочены последовательно и удаление после начальной команды копирования сначала вызовет запись кеша. Это не совсем так, особенно если у вас диск с NCQ /TCQ , а это большинство современных дисков. Весь смысл записи кеша в том, чтобы подготовиться к записи вне очереди.

sync ; sleep 2 mount РАЗДЕЛ_ДЛЯ_ЗАПИСИ_КОПИИ [КОМАНДА_РЕЗЕРВНОГО_КОПИРОВАНИЯ] sync ; sleep 2 [КОМАНДА_УДАЛЕНИЯ_СТАРЫХ_ФАЙЛОВ] sync ; sleep 2 umount

Запуск sync в конце тоже важен, чтобы в случае сбоя не повредить данные при размонтировании, если носитель, например, будет физически отключен.

8. Копирование файловой системы

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

Тем не менее, я никогда не пользовался LVM и поэтому не могу рассказать ничего полезного по этому поводу. Самостоятельно изучите документацию, чтобы выяснить, насколько вам это действительно подходит.

При создании снимков по-прежнему надо соблюдать меры предосторожности с приложениями, которые изменяют свои данные во время копирования. Точно так же надо делать дампы баз данных, дерева LDAP и т. д., чтобы не копировать файлы во время изменения.

9. Выбор файловой системы

Хотя это несколько выходит за рамки предмета статьи, хотелось бы сказать пару слов и о выборе файловой системы. Многие отдают предпочтение ReiserFS, а не Ext3, из-за ее новизны или незначительных отличий. Ext3 — файловая система по умолчанию в большинстве дистрибутивов Linux. Я рекомендую оставаться на ней, если нет особых причин использовать какую-то другую. В ReiserFS, например, есть логическое журналирование. Есть информация , что это может быть опасно в случае аварийного отключения питания. К тому же, сам Ганс Райзер говорил (или говорят, что говорил), что ReiserFS оптимизирована для быстродействия, а не безошибочной работы.

Даже в новой файловой системе Ext4 есть потенциальные проблемы, связанные с отложенным размещением . В Ext3 это был необязательный параметр (data=writeback

Представляем вашему вниманию новый курс от команды The Codeby - "Тестирование Веб-Приложений на проникновение с нуля". Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое.


В этом сообщение я представлю вам , программный кросс-платформенный бэкап сервер, который через сеть может вытянуть резервное копирование клиентов Linux, Windows и MacOS. В BackupPC добавлено ряд функций, которые делают резервное копированиче чуть ли не приятной вещью.

Особенности BackupPC

BackupPC поставляется с надёжным веб-интерфейсом, который позволяет вам собирать и управлять централизованным образом резервными копированиями других удалённых хостов. Используя веб-интерфейс, вы можете изучить файлы журналов и конфигурационные файлы, запустить/отменить/настроить расписания резервных копирований удалённых хостов и визуализировать текущий статус задач резервного копирования. Вы также можете просматривать архивные файлы и очень просто восстанавливать отдельные файлы или всё полностью из архивов бэкапов. Для восстановления индивидуальных отдельных файлов, вы можете загружать их из предыдущих бэкапов прямо в веб-интерфейсе. Если этого недостаточно, не требуется специальной программы на стороне клиента для клиентских хостов. На Windows клиентах используется родной протокол SMB, в то время как на *nix клиентах вы будете использовать rsync или tar через SSH, RSH или NFS.

Установка BackupPC

На Debian, Ubuntu, Mint и их производных запустите следующую команду.

# aptitude install backuppc

На Fedora используйте команду yum command. Обратите внимание, что имя пакета регистрозависимое.

# yum install BackupPC

На CentOS/RHEL 6 сначала включите репозиторий EPEL. На CentOS/RHEL 7 включите вместо репозиторий Nux Dextop. Затем продолжайте с командой yum:

Как обычно, обе системы управления пакетами будут заботиться об автоматическом разрешении зависимостей. В дополнение как часть установочного процесса, вас могут спросить настроить почтовый сервер, настроить или перенастроить веб-сервер, который будет использован для графического пользовательского интерфейса. Я не стал ничего настраивать в почтовом сервере (чтобы не удлинять инструкцию). Следующие скриншоты из системы Debian:

Сделайте ваш выбор нажав на пробел и затем перейдите к Ок, используя кнопку , и нажмите .

Вам будет представлена следующий экран, информирующий вас, что администраторский пользовательский аккаунт ‘backuppc’ с соответствующим ему паролем (который, по желанию, может быть изменён), был создан для управления BackupPC. Обратите внимание, что пользовательский аккаунт HTTP и обычный Linux аккаунт с одинаковым именем ‘backuppc’ будут созданы с идентичным паролем. Первый нужен для получения доступа в защищённый веб-интерфейс BackupPC, в то время как второй нужен для выполнения резервного копирования используя rsync через SSH.

Вы можете изменить пароль по умолчанию для HTTP пользователя ‘backuppc’ следующей командой:

Htpasswd /etc/backuppc/htpasswd backuppc

Для изменения обычного ‘backuppc’ пользовательского аккаунта Linux, используйте команду passwd.

# passwd backuppc

Обратите внимание, что установочный процесс автоматически создаст веб и программный конфигурационные файлы.

Запуск BackupPC и настройка Backups

Чтобы начать, откройте окно браузера по адресу http://<доменное имя или IP адрес сервера>/backuppc/. Когда появится окно запроса, введите данные HTTP пользователя, которые были предоставлены вам ранее. Если авторизация успешна, вас перекинет на главную страницу веб-интерфейса.

Наиболее вероятно, первое, что вам нужно сделать, это добавить хосты клиентов для резервного копирования. Перейдите в “Edit Hosts” (редактирвоание хостов) в панеле задач. Мы добавим два клиентских хоста:

  • Host #1: CentOS 7
  • Host #2: Windows 7

Мы будем делать резервное копирование CentOS, используя rsync через SSH, и хоста Windows, используя SMB. До выполнения резервного копирования, нам нужно настроить на наш хост CentOS и сделать доступной по сети (расшарить) каталог на Windows машине.

Вот инструкция для настройки аутентификации, основанной на ключе, для удалённого хоста CentOS. Мы создаём пользователю ‘backuppc’ пару ключей RSA и переносим публичный ключ в аккаунт рута хоста CentOS.

# usermod -s /bin/bash backuppc # su - backuppc # ssh-keygen -t rsa # ssh-copy-id [email protected]

Когда спросят, напечатайте yes и введите пароль рута для 192.168.0.17.

Вам понадобиться рут доступ для удалённого хоста CentOS для получения доступа записи на всю файловую систему в случае восстановления бэкапа файлов или каталогов, собственником которых является рут.

Когда хосты CentOS и Windows готовы, добавьте их в BackupPC используя веб-интерфейс:

Следующий шаг состоит из изменения настроек резервного копирования каждого хоста:

Следующее изображение показывает настройку для резервного копирования на Windows машине:

А следующий скриншот показывает настройку резервного копирования для CentOS:

Запуск резервного копирования

Для запуска каждого резервного копирования, перейдите к настройкам каждого хоста, а затем кликните “Start Full Backup”:

В любое время, вы можете просмотреть статус процесса, кликнув на home хоста, как показано в изображении выше. Если это по каким-либо причинам не получилось, также появится ссылка на страницу с сообщением ошибки (ошибок) в меню хоста. Когда резервное копирвоание завершено успешно, на сервере создаётся каталог с названием хоста или IP адресом в /var/lib/backuppc/pc:

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

Восстановление резервных копий

Для просмотра сохранённых файлов, переходите в раздел “Browse backups”, что находится в главном меню хоста. Вы можете визуализировать каталоги и файлы с первого взгляда и выбрать те, которые вы хотите восстановить. Как вариант, вы можете кликнуть по файлу и открыть его, используя программу по умолчанию, или кликните правой кнопкой и выберете Сохранить ссылку, для его загрузки на машину, где вы работаете в данный момент:

Если хотите, то можете загрузить файлы zip или tar, заключающие содержание резеврных копий или просто восстановите файл (файлы) на прежнее место:

Заключение

Говорят «Чем проще - тем лучше», и именно это предлагает BackupPC. В BackupPC вы найдёте не только инструмент для резервного копирования, но также разносторонний интерфейс для управления вашими резервными копиями нескольких операционных систем без необходимости приложения на стороне клиента. Я уверен, что более чем достаточная причина, чтобы хотя бы попробовать.

Оставляйте ваши комментарии и вопросы, если они у вас есть, используя форму внизу. Я всегда счастлив услышать, что говорят читатели!

Гарант является доверенным посредником между Участниками при проведении сделки.





Top