Содержание


Системы резервного копирования и управления IT-активами предприятия

Часть 7. BackInTime - возврат к удаленным данным

Comments

Серия контента:

Этот контент является частью # из серии # статей: Системы резервного копирования и управления IT-активами предприятия

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Системы резервного копирования и управления IT-активами предприятия

Следите за выходом новых статей этой серии.

В настоящее время существует множество систем, позволяющих делать резервное копирование данных. Все они имеют свои достоинства и недостатки. Одной из таких систем является BackInTime.

По словам автора, после того, как он узнал про систему резервного копирования TimeMachine, которая является основной для компьютеров Apple, он долго искал подобное решение для Linux. Наиболее подходящими оказались TimeVault и FlyBack, но, традиционно не без недостатков. TimeVault неудобен своим способом создания архивов, путем отслеживания и архивирования отдельных файлов, а также визуальным представлением архивных образов. FlyBack имеет ряд недостатков, связанных с использованием Git, например, ограничение на размер файла, помещаемого в репозиторий. Все это привело к появлению BackInTime.

BackInTime – графический интерфейс над связкой консольных приложений (rsync, создающий и восстанавливающий образы, diff – проверяющий наличие изменений и cp, создающим жесткие ссылки на файлы). Следует отметить, что BackInTime работает в окружении конкретного пользователя, что позволяет работать только с теми файлами, для которых пользователь имеет права на запись и чтение. Для файлов с правами “только чтение” будет невозможно восстановление. Если необходимо иметь возможность работать с любыми файлами (в том числе и системными в /usr, /usr/bin и т.д.), нужно запускать BackInTime от имени суперпользователя (root), например, при помощи sudo или su.

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

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

Установка продукта

Стабильной версией BackIntime на момент написания статьи считается 0.9.26. Она входит в репозитории большинства Linux-систем.

Так, в Ubuntu достаточно выполнить для среды GNOME:

sudo apt-get install backintime-common backintime-gnome

или для KDE4 (>= 4.1):

sudo apt-get install backintime-common backintime-kde4

В случае отсутствия BackInTime в репозитории, его можно скачать с сайта программы в виде deb-пакетов: backintime-common-0.9.26_all.deb, backintime-gnome-0.9.26_all.deb, backintime-kde4-0.9.26_all.deb или в виде исходного текста для самостоятельной сборки: backintime-0.9.26_src.tar.gz.

Если внимательно изучить сайт разработчика, то можно заметить, что в скором времени ожидается выпуск стабильной версии 1.0, а текущей на данный момент версией является 0.9.99.30. Версия выглядит достаточно стабильной, поэтому попробуем ее установить.

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

Получение последней версии BackInTime:

bzr branch lp:backintime

После получения исходного кода нужно позаботиться об удовлетворении зависимостей. Для инструмента командной строки необходимо установить python, rsync, cron. Для GNOME-версии интерфейса необходимо установить дополнительно python-glade2, python-gnome2, meld. Для KDE4-версии интерфейса понадобятся x11-utils, python-kde4 (>= 4.1), kompare. Имена пакетов даны в терминах Ubuntu, однако не составит труда найти аналогичные пакеты в других дистрибутивах.

После удовлетворения зависимостей заходим в директорию проекта:

cd backintime

Собираем и устанавливаем инструмент командной строки:

cd common
./configure
make
sudo make install

Затем собираем и устанавливаем интерфейс для GNOME:

cd ../gnome
./configure
make
sudo make install

Или для KDE4:

cd ../kde4
./configure
make
sudo make install

Пользователи Debian или других дистрибутивов, основанных на Debian (например, Ubuntu), в целях удобства управления пакетами, могут вместо ручной установки собрать и установить deb-пакет последней версии BackInTime:

cd backintime
./makedeb.sh
sudo dpkg -i backintime-common-<version>.deb

Затем для установки интерфейса для GNOME:

sudo dpkg -i backintime-gnome-<version>.deb

Или для KDE4:

sudo dpkg -i backintime-kde4-<version>.deb

Последняя версия по умолчанию устанавливается в /usr/share/backintime. Версия 0.9.26 дополнительно устанавливает скрипты в /usr/bin, которые упрощают вызов BackInTime. Версия 0.9.99.30 у меня этого сделать не смогла, так как процесс установки завершился неудачей. Если команды backintime, backintime-gnome или backintime-kde4 отсутствуют в /usr/bin, то придется скопировать их самостоятельно. Находясь в корне дерева исходных текстов backintime необходимо выполнить команды (с правами root):

cp ./common/backintime /usr/bin
cp ./gnome/backintime-gnome /usr/bin
cp ./kde4/backintime-kde4 /usr/bin
chmod 755 /usr/bin/backintime
chmod 755 /usr/bin/backintime-gnome
chmod 755 /usr/bin/backintime-kde4

Интеграция с файловым менеджером Nautilus (для GNOME)

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

Для интеграции необходимо наличие пакета nautilus-actions. Если он не установлен, придется инсталлировать его самостоятельно (например, для Ubuntu):

sudo apt-get install nautilus-actions

Идем в меню System > Preferences > Nautilus Actions Configuration.

В открывшемся окне нажимаем кнопку Add для добавления нового пункта меню.

Далее заполняем поля как показано на картинке.

Настройка дополнительных функций Nautilus
Настройка дополнительных функций Nautilus
Настройка дополнительных функций Nautilus

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

Icon – иконка, соответствующая команде (gtk-save – стандартная иконка из GNOME).

Path – имя программы для запуска при выборе пункта меню, в нашем случае это backintime-gnome.

Parameters – параметры, передаваемые вызываемой программе. %M – имя выбранного в Nautilus файла.

На вкладке Conditions делаем только одно изменение. В разделе Appears if selection contains выбираем вариант Both. Это означает, что наш пункт меню должен появляться и при выделении файлов и при выделении папок.

Настройка дополнительных функций, вкладка Conditions
Настройка дополнительных функций, вкладка Conditions
Настройка дополнительных функций, вкладка Conditions

Нажимаем ОК.

Теперь при щелчке правой кнопкой мыши по файлу или папке в Nautilus мы сможем запустить BackInTime и просмотреть историю изменений файла (папки) при помощи команды “Open with Back In Time”.

Контекстное меню с командой «Open with Back In Time»
Контекстное меню с командой «Open with Back In Time»
Контекстное меню с командой «Open with Back In Time»

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

При первом запуске программы (мы будем рассматривать вариант для GNOME backintime-gnome, вариант для KDE4 отличается только интерфейсом) откроется диалог настроек. Рассмотрим настройки подробнее.

Основные настройки
Основные настройки
Основные настройки

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

Внимание! Опытным путем было установлено, что, несмотря на то, что по умолчанию имя профиля предлагается как “Main profile”, профили имена которых содержат пробелы не работают. Поэтому рекомендую создать свой собственный профиль с именем без пробелов.

Поле «Where to save snapshot» позволяет выбрать директорию, куда необходимо сохранять архивный образ. Здесь можно дать две рекомендации. Первая – использовать диск, отличный от рабочего. Это связано с обеспечением сохранности архивных данных на случай выхода диска из строя. Вторая – директория, хранящая архивный образ ни в коем случае не должна быть в списке архивируемых директорий и не должна быть поддиректорией архивируемой директории.

Также у нас должны быть права на запись в эту директорию.

Выпадающий список Schedule позволяет задать расписание автоматического создания архивных образов. Он может принимать одно из значений: Disabled (отключено), Every 5 minutes (каждые 5 минут), Every 10 minutes (каждые 10 минут), Every Hour (каждый час), Every Day (каждый день), Every Week (каждую неделю) или Every Month (каждый месяц).

Вкладка архивируемых директорий
Вкладка архивируемых директорий
Вкладка архивируемых директорий

На вкладке Include задаются директории и файлы, которые мы ходим включить в процесс архивирования. При помощи кнопки Add File можно добавить к списку отдельный файл, при помощи Add Folder можно добавить к списку директорию или при помощи Remove удалить директорию или файл из списка.

Вкладка исключенных из процесса архивирования файлов
Вкладка исключенных из процесса архивирования файлов
Вкладка исключенных из процесса архивирования файлов

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

Вкладка автоматического удаления архивных образов
Вкладка автоматического удаления архивных образов
Вкладка автоматического удаления архивных образов

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

Older than – удаляются образы, которые старше определенного количества лет, недель, дней (Years, Weeks, Days соответственно).

If free space is less than – если свободного пространства на диске менее, чем указанной количество гигабайт (Gb) или мегабайт (Mb).

Smart remove – “умное” удаление. Образы удаляются таким образом, чтобы:

  1. сохраняются все образы за последние сутки;
  2. сохраняется один образ за последнюю неделю и один двухнедельной давности;
  3. сохраняются по одному образу за все предыдущие месяцы текущего и прошедшего года;
  4. сохраняются по одному образу за каждый прошедший год.

Don't remove named snapshots – при включенной этой опции образ, имеющий имя удалятся не будет. Имя образу может быть присвоено пользователем, о чем речь пойдет ниже.

Вкладка дополнительных опций
Вкладка дополнительных опций
Вкладка дополнительных опций

Enable notifications – включение сообщений в области нотификаций.

Сообщения в области нотификаций
Сообщения в области нотификаций
Сообщения в области нотификаций

Disable snapshops when on battery – отключение возможности автоматического создания образов при работе от аккумулятора в целях увеличения времени работы от батарей.

Backup files on restore – если данная опция включена, то при запуске восстановления файловой системы из архивного образа перед процессом восстановления будет сделан архивный образ текущего состояния.

Вкладка опций для опытных пользователей
Вкладка опций для опытных пользователей
Вкладка опций для опытных пользователей

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

Run 'nice' as cron job (default: enabled) – запуск автоматического архивирования с установкой пониженного приоритета процесса.

Run 'ionice' as cron job (default: enabled) – запуск автоматического архивирования с установкой пониженного приоритета операций ввода-вывода.

Run 'ionice' when taking a manual snapshot (default: disabled) – установка пониженного приоритета операций ввода-вывода при ручном архивировании.

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

Работа с BackInTime из консоли

BackInTime предоставляет возможность работы как из консоли, так и с графическим интерфейсом GNOME или KDE4.

Консольная версия имеет следующий набор опций для запуска:

backintime [ --profile <name> ] [ --backup | --backup-job |
             --snapshots-path | --snapshots-list |
             --snapshots-list-path | --last-snapshot |
             --last-snapshot-path | --help | --version |
             --license]

--profile – имя профиля. Эта опция должна использоваться в начале списка опций.

--backup – немедленное создание архивного образа, если были изменения.

--backup-job – то же, что и backup, но используется cron для автоматического создания образов.

--snapshots-path – выводит путь к директории для хранения архивных образов, если таковая сконфигурирована.

--snapshots-list – выводит список идентификаторов созданных архивных образов для указанного в profile профиля.

--snapshots-list-path – выводит список путей к созданным архивным образам для указанного в profile профиля.

--last-snapshot – выводит идентификатор последнего созданного образа.

--last-snapshot-path – выводит путь для последнего созданного образа.

--help – вывод краткой справки.

--version – вывод номера версии программы.

--license – вывод лицензионного соглашения.

Версии для GNOME (backintime-gnome) и KDE4 (backintime-kde4) имеют тот же набор параметров, что и консольный вариант.

Работа с графическим интерфейсом

Работу с графическим интерфейсом рассмотрим, как уже было сказано выше, на примере GNOME.

Главное окно приложения
Главное окно приложения
Главное окно приложения

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

Список образов для выделенного файла или директории
Список образов для выделенного файла или директории
Список образов для выделенного файла или директории

В окне списка образов для определенного файла или директории также можно проделать операции по восстановлению или копированию файлов, но самой ценной является операция Diff with, которая позволяет сравнить файл или директорию между двумя архивными образами. При этом первым архивным образом будет тот, для которого вызвано окно со списком образов, а второй образ нужно выбрать в выпадающем списке справа от кнопки Diff with. Сравнение производится при помощи meld в GNOME-версии или при помощи kompare в KDE4-версии.

Результат сравнения директории в двух архивных образах
Результат сравнения директории в двух архивных образах
Результат сравнения директории в двух архивных образах

На рисунке выше показано сравнение директории в двух архивных образах при помощи meld. Видно в каких поддиректориях и файлах были изменения.

В верхней части главного окна расположена панель инструментов. Перечислим их функции (слева-направо):

  • выпадающий список с именем текущего профиля пользователя;
  • Take snapshot – кнопка ручного создания архивного образа. Образ будет создан только в том случае, если есть какие-либо изменения.
  • Update snapshots – кнопка обновления информации о созданных архивных образах. Обновляемый образ необходимо выделить в списке созданных образов.
  • Snapshot name – кнопка вызывает окно, где можно задать архивному образу имя. Это бывает удобно, когда архивный образ создается не просто с целью архивирования данных, а, например, с целью сохранения состояния файловой системы, чтобы можно было в любой момент откатить изменения. Для подобных именованных архивов есть возможность в настройках отключить автоматическое удаление.
  • Remove snapshot – удаление выбранного архивного образа.
  • Settings – вызов диалога настроек программы.
  • About – информация о программе и разработчиках.
  • Help – вызов справки.
  • Exit – выход из программы.

Заключение

За несколько недель использования BackInTime создается ощущение, что ничего нового в этой программе нет. Все это уже видели и проходили в TimeVault или FlyBack. Однако, несмотря на все те же самые функции, не покидает ощущение некоторой законченности продукта. Удобно и интуитивно понятно практически все, все работает (ну, разве что только имена профилей пользователей с пробелами подвели) и почти ничего не надо допиливать руками (хотя бы вспомнить, что автоматическое создание образов в FlyBack настраивалось редактированием crontab). Есть мнение, что именно этот продукт станет той самой достойной заменой Apple's TimeMachine для Linux-систем. Далее мы расскажем еще об одной подобной программе — TimeVault.


Ресурсы для скачивания


Похожие темы

  • Системы резервного копирования и управления IT-активами предприятия. Часть 1.
  • Системы резервного копирования и управления IT-активами предприятия. Часть 2.
  • Системы резервного копирования и управления IT-активами предприятия. Часть 3.
  • Системы резервного копирования и управления IT-активами предприятия. Часть 4.
  • Системы резервного копирования и управления IT-активами предприятия. Часть 5.
  • Системы резервного копирования и управления IT-активами предприятия. Часть 6.

Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux, Open source
ArticleID=607415
ArticleTitle=Системы резервного копирования и управления IT-активами предприятия: Часть 7. BackInTime - возврат к удаленным данным
publish-date=01112011