1.Установка и настройка BackupPC-сервера
Установка необходимых пакетов
1 |
# yum install backuppc rsync bzip2 nfs-utils nfs-utils-lib |
Настройка конфигурационног файла Apache для BackupPC
1 |
# nano /etc/httpd/conf.d/BackupPC.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<Directory /usr/share/BackupPC/> AuthType Basic AuthUserFile /etc/BackupPC/apache.users AuthName "BackupPC" <IfModule mod_authz_core.c> # Apache 2.4 <RequireAll> Require valid-user <RequireAny> Require local # Разрешить подключение с указанной подсети Require ip 192.168.1.0/24 #Расскомментировать, если необходимо разрешить подключения отовсюду # Require all granted </RequireAny> </RequireAll> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 order deny,allow deny from all allow from 127.0.0.1 allow from ::1 require valid-user </IfModule> </Directory> Alias /BackupPC/images /usr/share/BackupPC/html/ ScriptAlias /BackupPC /usr/share/BackupPC/sbin/BackupPC_Admin ScriptAlias /backuppc /usr/share/BackupPC/sbin/BackupPC_Admin |
Создадим пользователя для Basic-аутентификаиции Apache
1 |
# htpasswd -c /etc/BackupPC/apache.users backuppc |
1 |
# cat /etc/BackupPC/apache.users |
1 |
backuppc:$apr1$UXSdxeFn$c1xAsiqB.YeJcQI204/q40 |
Подготовка и запуск Apache
1 |
# mkdir -p /var/www/html && chown -R apache:apache /var/www/html |
1 |
# mkdir /var/log/httpd && chown -R apache:apache /var/log/httpd |
1 |
# apachectl configtest && systemctl start httpd |
1 |
Syntax OK |
1 |
# netstat -nlpt | grep httpd |
1 |
tcp6 0 0 :::80 :::* LISTEN 596/httpd |
Настройка BackupPC
1 |
# cp /etc/BackupPC/config.pl /etc/BackupPC/config.pl~ |
Добавим пользователя backuppc, который будет иметь полные права в WEB-интерфейсе.
А также установим путь к бинарнику утилиты ping
1 |
# nano /etc/BackupPC/config.pl |
1 2 3 4 |
$Conf{CgiAdminUserGroup} = ''; $Conf{CgiAdminUsers} = 'backuppc'; $Conf{PingPath} = '/bin/ping'; |
Установка необходимых прав
1 |
# chown backuppc:apache /usr/share/BackupPC/sbin/* |
1 |
# chmod u+s /usr/share/BackupPC/sbin/BackupPC_Admin |
Запуск BackupPC
1 |
# systemctl start backuppc |
1 |
# systemctl status backuppc |
1 2 3 4 5 6 7 8 |
● backuppc.service - BackupPC server Loaded: loaded (/usr/lib/systemd/system/backuppc.service; enabled; vendor preset: disabled) Active: active (exited) since Tue 2016-11-29 23:16:14 EET; 41s ago Process: 912 ExecStart=/usr/share/BackupPC/bin/BackupPC -d (code=exited, status=0/SUCCESS) Main PID: 912 (code=exited, status=0/SUCCESS) CGroup: /user.slice/user-0.slice/session-1.scope/system.slice/backuppc.service ├─914 /usr/bin/perl /usr/share/BackupPC/bin/BackupPC -d └─915 /usr/bin/perl /usr/share/BackupPC/bin/BackupPC_trashClean |
Добавление сервисов в автозагрузку
1 |
# systemctl enable backuppc |
1 |
# systemctl enable httpd |
Проверка состояния backuppc
1 |
# su - backuppc |
1 2 |
Last login: Tue Nov 29 23:02:55 EET 2016 on pts/2 -bash-4.2$ |
1 |
-bash-4.2$ /usr/share/BackupPC/bin/BackupPC_serverMesg status info |
1 2 |
Got reply: %Info = ("ConfigLTime" => "1480455544","DUlastValueTime" => "1480455544","ConfigModTime" => "1480454814","nextWakeup" => "1480460400","DUDailyMax" => 68,"DUDailyMaxTime" => "1480454859","Version" => "3.3.1","pid" => 1210,"DUlastValue" => 68,"HostsModTime" => "1480454814","startTime" => "1480455544"); -bash-4.2$ |
Доступ к WEB-интерфейсу BackupPC
1 |
http://192.168.1.39/backuppc |
регулируется файлом /etc/BackupPC/apache.users
Просмотр файлов, созданных пакетом backuppc при установке
1 |
# rpm -ql BackupPC | less |
Лог-файл BackupPC
1 |
# tail -f /var/log/BackupPC/LOG |
1 2 3 |
2016-11-29 23:16:14 BackupPC started, pid 914 2016-11-29 23:16:14 Running BackupPC_trashClean (pid=915) 2016-11-29 23:16:14 Next wakeup is 2016-11-30 01:00:00 |
Серверы и клиенты могут взаимодействовать несколькими различными способами. В этом примере для того будет использоваться протокол rsync через SSH.
Для начала нужно создать пару ключей SSH для пользователя backuppc и передать открытый ключ на клиентские машины для удаленного пользователя root.
Это позволит также восстанавливать файлы/каталоги с бекапа на удаленные клиенты
1 |
# grep backuppc /etc/passwd |
1 |
backuppc:x:997:995::/var/lib/BackupPC:/sbin/nologin |
1 |
# usermod -s /bin/bash backuppc |
1 |
# su - backuppc |
1 |
-bash-4.2$ pwd |
1 |
/var/lib/BackupPC |
1 |
-bash-4.2$ ssh-keygen -t rsa |
1 2 3 4 5 6 7 |
Generating public/private rsa key pair. Enter file in which to save the key (/var/lib/BackupPC/.ssh/id_rsa): Created directory '/var/lib/BackupPC/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /var/lib/BackupPC/.ssh/id_rsa. Your public key has been saved in /var/lib/BackupPC/.ssh/id_rsa.pub. |
В качестве клиентов будет выступать пару серверов под Centos7(192.168.1.34) и Debian8 (192.168.1.35)
1 |
-bash-4.2$ ssh-copy-id root@192.168.1.35 |
1 |
-bash-4.2$ ssh-copy-id root@192.168.1.34 |
Проверяем аутентификацию по SSH-ключу без пароля при подключении с BackupPC-сервера на клиентов
1 |
-bash-4.2$ ssh root@192.168.1.35 |
1 2 |
Last login: Tue Nov 29 00:01:56 2016 from 192.168.1.85 root@mysql:~# |
1 |
-bash-4.2$ ssh root@192.168.1.34 |
1 2 |
Last login: Tue Nov 29 22:21:18 2016 from 192.168.1.85 [root@cvs ~]# |
2.Установим на клиентах rsync
Debian8(192.168.1.35)
1 |
# apt-get install rsync |
Centos7(192.168.1.34)
1 |
# yum install rsync |
3.Настройка бекапа клиента в WEB-интерфейсе
Добавляем клиентов, с которых будем снимать бекап
Настройка бекапа клиента Debian8
Например, для Debian8-клиента(192.168.1.35) настроим бекап каталогов /etc, /usr, /var и исключим из бекапа содержимое каталогов /var/tmp, /var/log, /var/cache/apt/archive
Опции для rsync оставим дефолтные
Если необходимо отключить проверку клиентов с BackupPC сервера через утилиту ping
1 |
# nano /etc/BackupPC/config.pl |
1 2 |
$Conf{PingPath} = '/bin/echo'; $Conf{PingCmd} = '$pingPath'; |
1 |
# systemctl restart backuppc |
Запустим создание полного бекапа для этого клиента в WEB-интерфейсе
В логах клиентского хоста на Backuppc-сервере
1 |
# tail -f /var/lib/BackupPC/pc/192.168.1.35/LOG.112016 |
1 2 |
2016-11-30 00:28:14 full backup started for directory / 2016-11-30 00:35:53 full backup 0 complete, 19218 files, 894155368 bytes, 0 xferErrs (0 bad files, 0 bad shares, 0 other) |
В основном лог-файле Backuppc-сервера
1 |
# tail -f /var/lib/backuppc/log/LOG |
1 2 3 4 5 |
2016-11-30 00:28:14 User backuppc requested backup of 192.168.1.35 (192.168.1.35) 2016-11-30 00:28:14 Started full backup on 192.168.1.35 (pid=1500, share=/) 2016-11-30 00:35:53 Finished full backup on 192.168.1.35 2016-11-30 00:35:53 Running BackupPC_link 192.168.1.35 (pid=1511) 2016-11-30 00:35:57 Finished 192.168.1.35 (BackupPC_link 192.168.1.35) |
Бекапы сохраняются в каталоге /var/lib/BackupPC/pc/
1 |
# du -hs /var/lib/BackupPC/pc/192.168.1.35/* |
1 2 3 4 5 6 |
432M /var/lib/BackupPC/pc/192.168.1.35/0 4.0K /var/lib/BackupPC/pc/192.168.1.35/backups 4.0K /var/lib/BackupPC/pc/192.168.1.35/backups.old 0 /var/lib/BackupPC/pc/192.168.1.35/LOCK 4.0K /var/lib/BackupPC/pc/192.168.1.35/LOG.112016 228K /var/lib/BackupPC/pc/192.168.1.35/XferLOG.0.z |
Проверяем, что сработали корректно исключения
Например, отсутствие фалов/каталогов в каталоге /var/log
4.Восстановленипе из бекапа
Восстановим,например, файл /etc/hosts
Предварительно, переместив его на клиенте
1 |
# mv /etc/hosts /etc/hosts~ |
1 |
# ls -l /etc | grep hosts |
1 2 3 |
-rw-r--r-- 1 root root 152 Oct 27 17:35 hosts~ -rw-r--r-- 1 root root 411 Jul 18 00:13 hosts.allow -rw-r--r-- 1 root root 711 Jul 18 00:13 hosts.deny |
В логах сервера для клиента 192.168.1.35
1 |
# tail -f /var/lib/BackupPC/pc/192.168.1.35/LOG.112016 |
1 2 |
2016-11-30 00:48:04 restore started below directory /etc to host 192.168.1.35 2016-11-30 00:48:05 restore 0 complete (1 files, 152 bytes, 0 dirs, 0 xferErrs) |
В глобальном логе сервера
1 |
# tail -f /var/lib/backuppc/log/LOG |
1 2 3 |
2016-11-30 00:48:04 User backuppc requested restore to 192.168.1.35 (192.168.1.35) 2016-11-30 00:48:04 Started restore on 192.168.1.35 (pid=1568) 2016-11-30 00:48:05 Finished restore on 192.168.1.35 |
Проверяем наличие файла на клиенте
1 |
# ls -l /etc/ | grep hosts |
1 2 3 4 |
-rw-r--r-- 1 root root 152 Oct 27 17:35 hosts -rw-r--r-- 1 root root 152 Oct 27 17:35 hosts~ -rw-r--r-- 1 root root 411 Jul 18 00:13 hosts.allow -rw-r--r-- 1 root root 711 Jul 18 00:13 hosts.deny |
Расписание создания бекапов для клиента 192.168.1.35 наследовалось/применялось с глобальных настроек расписания
А именно:
Раз в неделю создается полный бекап, а ежедневно – инкрементальный
Кол-во хранений копий полного бекапа – 1 шт, инкрементального – 6 шт
Бекап НЕ запускается с 7 до 19:30 с понедельника по пятницу т.е в бизнес-тайм бекап не снимается,чтобы не нагружать сервера.
5.Настройка бекапа клиента Centos7
Бекапим все каталоги,за исключением указанных:
/dev, /media, /mnt, /proc, /sys
В логах сервера для клиента 192.168.1.34
1 |
# tail -f /var/lib/BackupPC/pc/192.168.1.34/LOG.112016 |
1 2 |
2016-11-30 01:33:57 full backup started for directory / 2016-11-30 01:34:52 full backup 0 complete, 17599 files, 608838294 bytes, 0 xferErrs (0 bad files, 0 bad shares, 0 other) |
В глобальном логе сервера
1 |
# tail -f /var/lib/backuppc/log/LOG |
1 2 3 4 5 |
2016-11-30 01:33:56 User backuppc requested backup of 192.168.1.34 (192.168.1.34) 2016-11-30 01:33:57 Started full backup on 192.168.1.34 (pid=1775, share=/) 2016-11-30 01:34:52 Finished full backup on 192.168.1.34 2016-11-30 01:34:52 Running BackupPC_link 192.168.1.34 (pid=1780) 2016-11-30 01:34:52 Finished 192.168.1.34 (BackupPC_link 192.168.1.34) |
1 |
# du -hs /var/lib/BackupPC/pc/192.168.1.34/* |
1 2 3 4 5 6 |
266M /var/lib/BackupPC/pc/192.168.1.34/0 4.0K /var/lib/BackupPC/pc/192.168.1.34/backups 4.0K /var/lib/BackupPC/pc/192.168.1.34/backups.old 0 /var/lib/BackupPC/pc/192.168.1.34/LOCK 4.0K /var/lib/BackupPC/pc/192.168.1.34/LOG.112016 200K /var/lib/BackupPC/pc/192.168.1.34/XferLOG.0.z |
Проверяем, что корректно сработали исключения – каталоги, содержимое которых не нужно бекапить
Например, отсутствие каталогов/файлов внутри каталога sys
Источник:
http://www.plugged.in/linux/centos-7-backuppc-installation-guide.html
http://www.it-rem.ru/centos-7-nastroyka-backuppc.html
https://neklaf.wordpress.com/2016/03/05/install-and-set-up-backuppc-on-centos-7/