Backuppc настройка резервирования windows

Обновлено: 03.07.2024

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

Чтобы как-то упростить администрирование и сократить время, затрачиваемое на поддержку и мониторинг всего этого «зоопарка», я начал искать систему, которая бы поддерживала копирование информации по сети, умела делать инкрементальные бэкапы, поддерживала бы удаленное администрирование и не требовала установки клиентского программного обеспечения. Кроме того, было важно, чтобы система умела работать по протоколу SMB, так как часть серверов, в частности основной файл-сервер, работали под управлением ОС Windows.

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

  • Язык программирования, на котором написана система, – Perl.
  • Минимизация хранимой информации за счет того, что идентичные файлы из разных резервных копий хранятся только в одном экземпляре.
  • Настраиваемая степень сжатия данных.
  • Поддержка работы по протоколам smb/ssh/rsh/nfs.
  • Мощный CGI-интерфейс, позволяющий управлять сервером по сети посредством веб-браузера.
  • Поддержка архивирования информации с машин, получающих настройки сети через DHCP, разрешая имена при помощи nmblookup.
  • Гибкие настройки планирования архивации данных.
  • Оповещения о выполненных действиях администратора и пользователей посредством электронной почты.
  • Поддержка клиентов, работающих под управлением Linux, Freenix, Solaris Win95, Win98, Win2000 и WinXP. Сервер тестировался на Linux, Freenix и Solaris.
  • Очень подробная документация.

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

Я проверял работу BackupPC версии 2.1.0, последней на момент написания статьи, при помощи тестовой машины под управлением Fedora Core 2, и на «боевых» серверах, работающих на Red Hat Linux 9 и White Box Enterprise Linux 3. Операционная система, стоящая на тестовом сервере фактически является альфа-версией будущего Red Hat Enterprise Linux 4, а White Box Enterprise Linux 3 перекомпиляцией из свободно доступных исходных текстов текущей, третьей версии коммерческого Linux-дистрибутива от Red Hat.

Необходимость использовать не поддерживающуюся более «девятку» возникла при установке RAID-контроллера Promise SuperTRAX SX6000, для которого существовали драйвера только под эту операционную систему.

Требования к установке

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

Во-первых, как я уже писал, это операционная система, в роли которой может выступать Linux, Solaris либо другая UNIX-подобная система. Во-вторых, необходимо предусмотреть наличие вместительного RAID-массива, или использовать LVM. Кроме того: Perl версии 5.6.0 или выше, Samba- и Apache-сервер.

В этой статье я не буду касаться настройки клиента Samba, в частности, работы в составе Active Directory. Я предполагаю само собой разумеющимся, что если вы планируете производить архивацию информации с Windows-серверов, работающих в составе домена, то и должны обеспечить к ним доступ вашей Linux-машины. Отсутствие описания процесса конфигурирования Samba-сервера в данной статье, думаю, компенсируется многочисленными материалами на эту тему в Интернете.

Также предполагается, что вы используете кодировку KOI-8 вместо установленной по умолчанию в большинстве современных дистрибутивов UTF-8. Red Hat, в частности, перешла на ее использование с версии 8.0 своего продукта. Но дело в том, что поддержка русского языка при помощи UTF-8 во многих приложениях далека от совершенства. Безусловно, лучшим решением была бы работа с UTF-8, но в данном случае я предпочел пойти по пути «наименьшего сопротивления» и воспользоваться уже существующими у меня наработками.

Приступая к установке BackupPC, в системе необходимо иметь следующие perl-модули: Compress::Zlib, Archive::Zip и File:RsyncP. Проверить наличие установленных модулей можно, дав команду:

perldoc <имя модуля>

следовательно, в вашей системе данный модуль еще не установлен. Оба дистрибутива, в которых я устанавливал BackupPC, по умолчанию этих модулей не содержат.

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

В случае RHEL3 для успешной компиляции модуля Archive::Zip пришлось дать команду:

без которой он отказался «собираться».

В принципе установка par2cmdline не обязательна, так как по умолчанию BackupPC работает и без нее. Но все же я рекомендовал бы ее установить, особенно при отсутствии RAID-массива на сервере.

Ну и, наконец, добавим пользователя, из-под которого будет выполняться запуск системы резервного копирования:

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

Теперь можно приступить непосредственно к установке BackupPC. Развернем архив и запустим конфигурационный скрипт:

В ходе установки вам потребуется ответить на ряд вопросов. На первый – просьбу указать полный путь к уже установленной старой версии – можно ответить, просто нажав «Enter», поскольку выполняется первоначальная установка. После вам будут показаны пути к утилитам, требуемым BackupPC, которые скрипт определил самостоятельно, с просьбой подтвердить их расположение. Затем необходимо проверить, правильно ли скрипт определил имя хоста и имя пользователя, которого мы создали ранее, а также директорию для установки исполнимых файлов и директорию для хранения данных.

В зависимости от быстродействия сервера вам необходимо будет выбрать уровень компрессии резервируемых данных. Уровень можно менять от 1 до 9. По умолчанию предлагается третий уровень. По заявлениям разработчиков, при увеличении c «умолчальной» тройки до пятерки, например, загрузка процессора увеличивается на 20%, а данные занимают на 2-3% меньше места. По этим данным видно, что особого смысла увеличивать степень сжатия нет. При первоначальной установке я бы порекомендовал оставить тройку. Позднее можно попробовать поэкспериментировать с этим значением, поменяв его в конфигурационном файле.

Следующий вопрос касается пути к cgi-bin директории вашего веб-сервера (в Red Hat-подобных дистрибутивах это /var/www/cgi-bin/) и пути к директории с устанавливаемыми иконками для CGI-интерфейса (/var/www/html/BackupPC). Кроме того, будет предложено ввести часть URL, указывающего на иконки, а именно расположение относительно корневого каталога веб-сервера. Обратите внимание, что путь должен начинаться со слэша. В нашем случае он будет выглядеть как /BackupPC.

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

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

Обратите внимание, что параметры, относящиеся к конкретной машине, могут быть переопределены машинно-зависимым файлом Config.pl, который хранится в поддиректории каталога с данными /BackupPC/pc/<имя_компьютера>/. Действительно, на каждой машине могут быть свои конкретные папки общего доступа, списки исключений, свой локальный пользователь с паролем, для которого установлены свои разрешения.

Теперь настроим список компьютеров, данные с которых необходимо архивировать. Файл с настройками находится в том же каталоге, где и основной конфигурационный файл, и называется hosts. Собственно, синтаксис файла максимально прост. Каждая строчка содержит три параметра: имя машины, имя (e-mail) ее хозяина и признак, получает ли данный компьютер сетевые настройки по DHCP или нет.

Теперь осталось скопировать скрипт старта и остановки сервиса из дистрибутива /init.d/linux-backuppc в /etc/rc.d/init.d/backuppc, в случае Red Hat дистрибутива, а затем можно попробовать стартовать BackupPC командой:

Кроме того, нелишне добавить автоматический старт при загрузке сервера в консоль и в X-Window:

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

Еще одной проблемой при работе с CGI-интерфейсом, решение которой, однако, пришлось искать самому, может стать некорректное отображение русских имен файлов и папок. Для исправления этой ситуации придется внести небольшие изменения в файл Lib.pm, расположенный в подкаталоге /CGI директории с исполняемыми файлами программы. Данный файл содержит системные процедуры BackupPC.

Во-первых, найдите в теле процедуры Header строчку:

и замените ее на:

Ну а во-вторых, в процедуре EscHTML закомментируйте предпоследнюю строчку, стоящую перед «return»:

Теперь все имена будут отображаться в нормальном виде, используя кодировку KOI-8.

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

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

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

В конце мне хотелось бы поблагодарить Павла Шера за ряд ценных советов, которые мне пригодились при написании статьи.

Программа BackupPC настраивается и управляется через веб-интерфейс, поэтому для ее работы нужен установленный веб-сервер apache (Linux Debian):

Для смены пароля (опционально) на учетную запись backuppc выполняем следующую команду:

Открываем браузер и заходим на страницу управления backuppc:

Для начала добавим имена хостов, информация с которых будет резервироваться:

Edit Config > Hosts


После заполнения таблицы не забываем сохранить настройки


При необходимости добавляем введенные хосты в файл /etc/hosts:

Резервирование с Windows-систем:


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

Домен Windows

Создаем на контроллере домена пользователя backuppc с правами оператора архива и паролем, совпадающем с паролем пользователя backuppc в системе BackupPC. На клиентской машине для резервируемой информации выставляем права на чтение для пользователя backuppc.

Рабочая Группа

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

Настройка планировщика создания архивов

Рассмотрим несколько примеров:

Эта настройка означает, что нельзя делать архивы с 7.00 до 19.30 в рабочие дни.

Эта настройка означает, что нельзя делать архивы с 7.00 до 19.30 в рабочие дни, а также с 23.00 до 5.00 в пятницу и субботу.


В выпадающем списке backuppc выбираем хост для индивидуальной настройки резервного копирования, Edit Config > Xfer :




Проверяем, что у нас получилось. Переходим на домашнюю страницу, настроенного для резервирования хоста и нажимаем кнопку . Смотрим логи LOG file :

Если видим что-то подобное, все нормально, резервирование состоялось. Просмотреть и восстановить архив можно в Browse backups :

Резервное копирование серверов и рабочих станций при помощи BackupPC

Все системные администраторы делятся на две категории — те кто не делает резервное копирование и те, кто уже делает.

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

Конечно существует большое количество коммерческих решений для создания резервных копий чего угодно: как отдельных файлов, так и конкретно почтовых баз, структуры AD или даже всего сервера сразу. Так же есть немало и свободных и бесплатных решений для этого. Например Bacula, Amanda, dar, BackUpPC и другие.

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

BackupPC — это свободное ПО (распространяется под GNU General Public License) для резервного копирования данных с управлением через веб-интерфейс. Кроссплатформенный программный сервер может работать на любом сервере под управлением GNU/Linux, Solaris или UNIX. Нет необходимости в клиентской части, так как сервер сам по себе является клиентом для нескольких протоколов, которые поддерживаются родными службами клиентской ОС.

Например, BackupPC является SMB‐клиентом, что может использоваться для резервного копирования совместно используемых данных в сетевых папках на компьютерах с Microsoft Windows. Подобный сервер BackupPC может быть установлен за межсетевым экраном, выполняющим функции сетевой трансляции адресов (NAT), когда Windows‐компьютер имеет публичный IP адрес. Так как это не рекомендуется из за большого количества SMB трафика, то более удобным является использование веб-серверов, поддерживающих SSH и возможность работы с tar и rsync, что позволяет серверу BackupPC находиться в подсети отделённой от веб‐серверов демилитаризованной зоной.

Установка системы резервного копирования BackUpPC

Так как управление BackupPC производится через веб-интерфейс, то вначале необходимо установить веб-сервер:

Далее установим сам сервер резервного копирования и пакет smbclient для работы с windows-компьютерами:

Для входа в систему будем использовать логин backuppc и пароль password.

Для того, что бы установить пароль для этого пользователя следует ввести команду:

Добавить нового пользователя (к примеру admin) и задать ему пароль можно командой:

После первого логина в систему мы увидим окно, в котором прописана только одна клиентская машина для резервного копирования — localhost


Файлы и пути, используемые в BackupPC

Основной файл настроек данной системы резервного копирования — /etc/backuppc/config.pl

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

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

В каталоге /var/lib/backuppc/pc будут храниться резервные копии всех серверов. По этому необходимо или предусмотреть достаточное количество дискового пространства по этому пути, или переопределить его в файле /etc/backuppc/config.pl

Еще один важный путь — /usr/share/backuppc/lib/BackupPC/Lang

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

Исправление ошибок после установки программы

В связи с тем, что в Linux многие программы связаны между собой, после очередного обновления модулей perl при запуске BacupPC появляются ошибки:

Открываем файл /usr/share/backuppc/lib/BackupPC/Storage/Text.pm

и меняем строчку

foreach my $param qw(BackupFilesOnly BackupFilesExclude)

foreach my $param (qw(BackupFilesOnly BackupFilesExclude))

И второй файл. Открываем /usr/share/backuppc/lib/BackupPC/Lib.pm

и меняем строчку

foreach my $param qw(BackupFilesOnly BackupFilesExclude)

foreach my $param (qw(BackupFilesOnly BackupFilesExclude))

После этого перезапуск сервиса backuppc будет проходить без ошибок.

Конфигурирование клиентского Linux-хоста

Добавим в конец файла /etc/backuppc/hosts строчку:

linuxsrv1 0 backuppc

Первое поле, это понятное нам имя хоста, второе — включение (1) или отключение (0) расписания резервного копирования, и третье — пользователь, который имеет доступ к управлению данным хостом.

Далее создадим файл конфигурации этого сервера:

И заполним его следующим образом:

$Conf = '$sshPath -q -x -l bcuser $host sudo $rsyncPath $argList+';

$Conf = '$sshPath -q -x -l bcuser $host sudo $rsyncPath $argList+';

В этом файле мы указываем адрес клиентского сервера

И тип соединения

Далее нужно сделать возможность нашему серверу резервного копирования авторизоваться на удаленной системе по протоколу ssh не по паролю, а ко ключу.

Создаем ключ для пользователя backuppc, с правами которого и работает наш сервер резервного копирования

Запрошеный пароль на ключ оставляем пустым.

bcuser ALL=(ALL) NOPASSWD:/usr/bin/rsync

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

Теперь возвращаемся на наш сервер резервного копирования. Ключ для авторизации по ssh мы уже создали и теперь нужно передать его на клиентский сервер.

где 192.168.0.27 — IP-адрес клиентского Linux-сервера

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

Если соединение прошло успешно, значит на этом настройка завершена.

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

Открыв его веб-интерфейс и перейдя на закладку «Host Summary» в списке клиентских серверов мы увиди наш только что описаный сервер linuxsrv1



Зайдем внутрь этого хоста и нажмем кнопку «Start Full Backup»



Через некоторое (в нашем случае около 15-20 секунд) время, перейдя на закладку «Browse backups » Мы сможем увидеть все дерево резервной копии с подчиненного сервера.


Если внимательно посмотреть на список вложенных каталогов, то мы увидим, что каталога /etc/ssh там нет, что говорит о том, что списки исключения работают корректно.

Конфигурирование клиентского Windows-хоста

Резервное копирование Windows-машин производится по протоколу SMB.

Для добавления новохо клиентского хоста в систему добавим в конец файла /etc/backuppc/hosts строчку:

winxp 0 backuppc

И создадим файл /etc/backuppc/winxp.pl с таким содержимым:

'C$' => ['/Documents and Settings/User/Мои документы'],

$Conf = '$smbClientPath \\\\$host\\$shareName $I_option -U $userName -E -d 1 -c tarmode\\ full -Tc$$

$Conf = '$smbClientPath \\\\$host\\$shareName $I_option -U $userName -E -d 1 -c tarmode\\ full -TcN$

$Conf = '$smbClientPath \\\\$host\\$shareName $I_option -U $userName -E -d 1 -c tarmode\\ full -$

Принцип создания файла такой же самый, как и для Linux-сервера.

Создание расписания автоматического копирования.

Настройка расписания резервного копировния производится в свойствах конкретного хоста на закладке «Shedule»



Тут имеются следующие поля настроек:

Полная резервная копия:

FullPeriod — минимальное время в днях между полными бекапами

FullKeepCnt — сколько полных бекапов необходимо хранить

FullKeepCntMin — минимальное количество хранимых полных бекапов

FullAgeMax — максимальный возраст хранимого полного бекапа

Инкрементальная резервная копия:

IncrPeriod — минимальное время в днях между инкрементальными бекапами

IncrKeepCnt — сколько инкрементальных бекапов необходимо хранить

IncrKeepCntMin — минимальное количество хранимых инкрементальных бекапов

IncrAgeMax — максимальный возраст хранимого инкрементального бекапа

IncrLevels — уровень инкрементального бекапа

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

Вот, собственно, и все основные настройки. Ставьте, настраивайте, пользуйтесь.


BackupPC - система резервного копирования, ориентированная на диски.

Возможности BackupPC:

BackupPC является SMB‐ клиентом, поддерживает Настройка и использование SSH, использует Архиватор tar gz и Использование rsync в примерах. Поддерживаются все возможности восстановления, в том числе прямое восстановление (через smbclient, tar, или rsync/rsyncd), загрузка zip в Linux или Архиватор tar gz архивов. Интеллектуальная схема пулинга, минимизирующая дисковые ресурсы и ввод/вывод. Идентичные файлы во множестве резервных копий на одном и том же или разных PC сохраняются только единожды, что приводит к экономии дискового пространства и уменьшению количества операций записи. Это также называется "дедупликация данных". Опция сжатия обеспечивает дополнительное уменьшение размера резервной копии. Нагрузка на процессор при этом низка, так как сжатию подвергаются только новые файлы (которых ещё нет в пуле). Не нужно никаких клиентских программ. Для Windows применяется протокол SMB. А для Linux или Unix можно использовать rsync или tar (через ssh/rsh/nfs). Гибкие опции восстановления. Как одиночные файлы, так и Zip и Tar архивы выбранных файлов и каталогов могут быть восстановлены непосредственно в CGI интерфейсе. BackupPC поддерживает мобильные устройства, где имеется непостоянное подключение к сети и динамическая адресация (DHCP). Гибкие параметры конфигурации позволяют параллельное выполнение нескольких задач резервного копирования.

Рекомендую для резервирования связку AutoMySQLBackup и BackupPC.

Установка BackupPC на сервер Ubuntu

BackupPC 3.3 Ubuntu 16.04.3 LTS

Резервное копирование по SSH

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

Сервер

на все вопросы просто жмем клавишу Enter

С приватным ключом id_rsa программа BackupPC будет подключаться к клиентским компьютерам. На клиентские компьютер должен быть перенесён публичный ключ, сделаем это при помощи утилиты Настройка и использование SSH-copy-id, она автоматически создаст файл authorized_keys с нашим ключем в директории .ssh. Например:

Клиент Ubuntu 16.04.3 LTS

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

Даем права на запуск sudo без пароля пользователю remuserbak. В самый конец файла добавляем строчку

Переносим публичный ключ, сделаем это при помощи утилиты SSH-copy-id. Для этого на сервере, где установлен сервер BackupPC, от имени пользователя, от которого запускается демон backuppc, запускаем утилиту ssh-copy-id

Для того того что все работает, подключитесь к клиентскому компьютеру используя команду

Дальнейшая настройка происходит через веб-интерфейс

В настройках клиента, на странице Xfer Settings указываем XferMethod = Использование rsync в примерах, в параметре RsyncShareName задаем директории для копирования Не забываем заменить пользователя root на remuserbak в строках RsyncClientCmd и RsyncClientRestoreCmd. Эти изменения можно задать как глобально для всего сервера BackupPC, так и индивидуально для каждого клиента. Не забываем явно для каждого клиента задавать путь к sudo.

Клиенты

Не забываем явно для каждого клиента задавать путь к sudo.

Backup локальных директорий

пришлось разрешить /usr/bin/env иначе возникает ошибка Got fatal error during xfer (sudo: no tty present and no askpass program specified)

Клиент для FreeBSD

Backup Настройка и использование SSH ресурсов. Настройка клиента для ОС FreeBSD. Используем Использование rsync в примерах:

С приватным ключом id_rsa программа BackupPC будет подключаться к клиентским компютерам. На клиентские компьютер должен быть перенесён публичный ключ, сделаем это при помощи утилиты Настройка и использование SSH-copy-id, она автоматически создаст файл authorized_keys с нашим ключем в директории .ssh

Для того чтобы убедиться что все действия выполнены успешно, пробуем подключиться по ssh с сервера. Если пароль не запрашивается, значит все в порядке.

Для FreeBSD в настройках Xfer Settings меняем 3 параметра: путь к Использование rsync в примерах на клиентском компьютере и в ручную меняем строку запуска вместо -l root прописываем нашего пользователя .

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

Очистить пулл BackupPC:

BackupPC: ping too slow. При возникновении этой ошибки бекап не производится. Для устранения нужно изменить параметр до 200 $Conf = 200;

После инсталляции BackupPC на Ubuntu, столкнулся тем что не архивируется localhost (то есть сервер на котором установлен непосредственно демон backuppc). В логе backuppc для localhost пишет ошибку no ping response.

Читайте также: