Опрос

Что вы думаете по поводу веб-кастов, выложеных на сайте?
 

Последнии комментарии

Резервное копирование серверов и рабочих станций при помощи BackupPC PDF Печать E-mail
Рейтинг пользователей: / 9
ХудшийЛучший 
Автор: yakim   
03.09.2012 09:22

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

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

Конечно существует большое количество коммерческих решений для создания резервных копий чего угодно: как отдельных файлов, так и конкретно почтовых баз, структуры 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 производится через веб-интерфейс, то вначале необходимо установить веб-сервер:

# apt-get install apache2

   

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

# apt-get install backuppc smbclient

   

После окончания установки его веб-интервейс будет доступен по адресу http://ip-addr/backuppc

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

   

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

# htpasswd /etc/backuppc/htpasswd backuppc

   

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

# htpasswd /etc/backuppc/htpasswd 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 появляются ошибки:

Use of qw(...) as parentheses is deprecated at /usr/share/backuppc/lib/BackupPC/Storage/Text.pm line 302. 
Use of qw(...) as parentheses is deprecated at /usr/share/backuppc/lib/BackupPC/Lib.pm line 1425.

Для их исправления нужно поправить содержимое двух файлов.

Открываем файл /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) расписания резервного копирования, и третье — пользователь, который имеет доступ к управлению данным хостом.

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

#nano /etc/backuppc/linuxsrv1.pl

  

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

$Conf{BackupsDisable} = '1';

$Conf{ClientNameAlias} = '192.168.0.27';

$Conf{BackupFilesOnly} = {

'*' => [

'/etc'

]

};

$Conf{XferMethod} = 'rsync';

$Conf{RsyncClientPath} = '/usr/bin/rsync';

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

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

$Conf{RsyncShareName} = [

'/'

];

$Conf{RsyncCsumCacheVerifyProb} = '0.01';

$Conf{XferLogLevel} = '9';

$Conf{ClientCharsetLegacy} = 'utf8';

$Conf{BackupFilesExclude} = {

'/' => [

'/etc/ssh'

]

};

  

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

$Conf{ClientNameAlias} = '192.168.0.27';

  

Путь копирования

$Conf{BackupFilesOnly} = { '*' => [ '/etc' ]};

  

Путь исключений

$Conf{BackupFilesExclude} = { '/' => [ '/etc/ssh' ]};

  

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

$Conf{XferMethod} = 'rsync';

  

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

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

# sudo -u backuppc ssh-keygen -t rsa

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

  

Далее на клиентском сервере создаем пользователя bcuser и в настройках sudo (#visudo ) прописываем:

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

  

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

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

# sudo -u backuppc ssh-copy-id -i /var/lib/backuppc/.ssh/id_rsa.pub Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript

  

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

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

# sudo -u backuppc ssh Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript

  

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

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

#service backuppc restart

  

Открыв его веб-интерфейс и перейдя на закладку «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 с таким содержимым:

$Conf{ClientNameAlias} = '192.168.0.12';

$Conf{BackupFilesOnly} = {

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

};

$Conf{XferMethod} = 'smb';

$Conf{SmbShareName} = [ 'C$' ];

$Conf{SmbShareUserName} = 'STUDY\\admin';

# Password should be configured on client

$Conf{SmbSharePasswd} = 'admin';

$Conf{PingMaxMsec} = '900';

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

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

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

$Conf{ClientCharset} = 'cp1252';

  

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

  

  

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

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


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

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

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

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

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

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

   

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

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

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

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

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

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

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

  

  

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

Это решение вподне подходит и для резервного копирования серверов на колокейшене.

Если вы, например, закажете себе сервер http://www.di-net.ru/collocation/colocation/, то вполне сможете бекапить по защищенному каналу.

  




Обновлено 27.12.2012 08:08
 

Комментарии 

 
+1 #1 Spasibo balshoe 01.10.2012 09:18
:lol:
vsyo otlichno :)
 
 
+1 #2 Oakim 08.11.2012 08:41
UBUNTU 12.04 - BackupPC version 3.2.1

Для правильного отображения WIN-довых папок в ClientCharset нужно поставить UTF8.

В /etc/Samba/smb.conf добавить

[global]

display charset = UTF-8
unix charset = UTF-8
dos charset = CP866
 
 
+1 #3 yakim 08.11.2012 09:16
А причем тут вообще smb.conf?
На сервере BackupPC самба не нужна. Там есть smbclient
 
 
+1 #4 Oakim 08.11.2012 16:29
Ну может и не нужна :-* Но может кому и понадобиться.

Такой вопрос если востонавливаю ZIP, а в нем должны быть Виндовые файлы с названиями в кирилице, то получаю абру-кадабру
 
 
+1 #5 yakim 08.11.2012 16:34
Нужно для этого ставить патченый zip. Тогда с кодировкой проблем не будет.
 
 
+1 #6 Oakim 15.11.2012 08:46
При попытке сделать резервную копию файла с Win-шары у которого длинное имя - сервер виснет намертво :-?
 
 
+1 #7 Oakim 15.11.2012 13:01
Цитирую Oakim:
При попытке сделать резервную копию файла с Win-шары у которого длинное имя - сервер виснет намертво :-?


Причину этого нашел и она заключается в файловой системе сервера ext4 (если копирую на ntfs) то все копируется без вопросов.

Какую выбрать файловую систему для хранение резервных копий win-шар ?
 
 
+1 #8 Oakim 16.11.2012 09:03
Для решения проблемы с длинными именами файлов на Win-шарах, сделал следующее:
1. Сделал раздел с файловой системой NTFS
2. Смонтировал его
3. Скопировал на него папку /var/lib/backuppc
4. В файле /etc/backuppc/config.pl изменил значение каталога TopDir
#$Conf{TopDir} = '/var/lib/backuppc';
$Conf{TopDir} = '/mnt/backup/backuppc';
5. Перезапустил службу bacuppc
sudo service backuppc restart

И заработало

P.S. Есть еще дин способ - сразу раздел для резервных копий смонтировать в /var/lib/backuppc
 
 
+1 #9 Zubat 27.11.2012 09:04
Установил,лобав ляю хост. Но при попытке сделать обзор ,получаю сообщение Error: Backup number for host 192.168.70.146 does not exist.)
что нужно посмотреть?
 
 
+1 #10 alex2012 22.02.2013 17:07
как забекапить на внешний жесткий диск???
примонтировал внешний винт (форматнув перед этим в ext2), но сыпится ошибка
Restarting backuppc...2013-02-22 17:04:03 Can't create a test hardlink between a file in /mnt/w/backuppc/pc and /mnt/w/backuppc/cpool. Either these are different file systems, or this file system doesn't support hardlinks, or these directories don't exist, or there is a permissions problem, or the file system is out of inodes or full. Use df, df -i, and ls -ld to check each of these possibilities. Quitting...
 
 
+1 #11 Overmaxx 23.05.2013 01:54
А что делать с длинными путями с кирилическими символами на виндовой шаре, которая бэкапится? не хотят копироваться эти данные, приходится в винде путь укорачивать, а это не удобно
 
 
+1 #12 irq15 04.09.2013 04:31
Как создать пользователя без пароля в ubuntu 13.04.
описанным выше способом не катит, все равно пароль просит
 
 
+1 #13 yakim 04.09.2013 08:30
Если я вообще правильно понял вопрос, то не пользавателя без пароля создавать нужно, а авторизацию по ssh по ключу делать нужно. В статье все правильно. Смотрите, что сделали не так.
 
 
+1 #14 coman 19.09.2013 15:32
Можно ещё делать бэкап настроек по-старинке: joyit.ru/administrirovan ie/21-ubuntu-server.html
 
 
+1 #15 yakim 19.09.2013 15:39
Цитирую coman:
Можно ещё делать бэкап настроек по-старинке:

Можно. Но тут задача не та.
 
 
+1 #16 Алексей 25.09.2013 18:18
1) Путь /var/lib/backuppc в конфишурации ни в коем случае менять нельзя, о чём написано в свежих версиях конфигурации. Делайте symlink.
2) Если собираетесь бэкапить много данных и всё это долго хранить у себя, используйте XFS, т.к. BackupPC очень любит hardlink'и.
 

Добавить комментарий

Защитный код
Обновить

 
2.png

Дружественные сайты

Linux для всех

 

Видеоуроки

 

 

Ubuntu в Сумах

 

Мои Счетчики