🐹 Apache: Установка и настройка системы резервного копирования BackupPC.

Содержание:

1. Постановка задачи.
2. Описание системы.
3. Предварительная подготовка сервера.

4. Серверная часть.

4.1. Подключение репозитория epel.
4.2. Установка BackupPC.
4.3. Установка Apache.
4.4. Подготовка каталогов.
4.5. Создание сервисной учетной записи.
4.6. Права доступа к каталогам.
4.7. Скачивание архива BackupPC.
4.8. Запуск скрипта configure.pl автоустановки.
4.9. Настройка Apache.
4.10. Организация авторизации.
4.11. Настройка BackupPC.
4.12. Автозапуск работы BackupPC.
4.13. Автозапуск работы Apache.
4.14. Проверка web-интерфейса BackupPC.

5. Клиентская часть.

5.1. Генерация ключей SSH на клиентах.
5.2. Генерация ключей SSH на сервере.
5.3. Проброс SSH-ключа.
5.4. Установка rsync на клиентах.

6. Настройка резервного копирования клиента в web-интерфейсе.
7. Восстановление из резервной копии.
8. Восстановление из резервной копии на новую клиентскую машину.
9. Решение ошибок.

9.1. Ошибка: can’t ping.

10. Оригиналы источников информации.


  1. CentOS Linux release 7.9.2009 (Core).
  2. BackupPC 4.4.0, released on June 20, 2020.

1. Постановка задачи.

Имеются два сервера: первый web-сервер под CentOS 7 (192.168.0.12) — папки с сайтами и базы данных, второй ftp-сервер под CentOS 7 (192.168.0.6) — пополняемый репозиторий программ и игр для Windows. Требуется делать резервное копирование их содержимого на отдельный сервер резервного копирования, который физически стоит отдельно от этих двух.

Настройку BackupPC севера буду делать на третий сервер. Новый и свежеустановленный сервер под управлением CentOS 7 и Apache. Никаких дополнительных систем и сервисов он у меня совмещать с системой резервного копирования не будет. Это будет отдельных самостоятельный сервер.

1.1. Параметры сервера.

  • SSD 60 Гб для CentOS 7, Apache и BackupPC.
  • HDD 3 Тб для хранения резервной копии файлов.
  • IP-адрес: 192.168.0.20.
  • BackupPC 4.4.0

2. Описание системы.

BackupPC — свободное программное обеспечение (распространяется под GNU General Public License) для резервного копирования данных с управлением через web-интерфейс. Кроссплатформенный программный сервер может работать на любом сервере под управлением CentOS 7. Нет необходимости в клиентской части, так как сервер сам по себе является клиентом для нескольких протоколов, которые поддерживаются родными службами клиентской операционной системы.

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

Ссылка на сайт разработчиков: https://backuppc.github.io/backuppc/.

2.1. Выбор протокола.

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

2.2. Особенности.

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

3. Предварительная подготовка сервера.

Традиционно обновим систему перед работой с ней дальше:

# yum -y update

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

SELinux – система принудительного контроля доступа, реализованная на уровне ядра.

Подробнее о ней есть в статье «CentOS 7: Как временно или навсегда отключить SELinux».

# yum -y remove selinux*

После удаления SELinux нужно перезагрузить систему.

# shutdown -r now

Первым делом настроим межсетевой экран:

# firewall-cmd --permanent --zone=public --add-service=http

# firewall-cmd --reload

Или отключим firewalld, который присутствует в CentOS 7 по-умолчанию сразу после установки:

# systemctl stop firewalld

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

# systemctl disable firewalld

После этого на сервере настройки сетевого экрана становятся полностью открытыми.

Установим iptables:

# yum -y install iptables-services

Теперь можно добавить iptables в автозагрузку и запустить:

# systemctl start iptables.service

# systemctl enable iptables.service

Так как Apache у нас будет вещать на 80 порту, то его и откроем на сервере. Если порт будет изменен в конфигурациях Apache, то открыть его нужно будет так же и iptables. С противном случае вы не увидите никакого web-интерфейса с IP-адреса сервера серьезного копирования.

В терминале CentOS 7 последовательно выполните следующие команды:

# iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

# service iptables save

Перезагружаем iptables чтобы применились новые правила:

# systemctl restart iptables

Порт 80 открыт для работы Apache.

Подробнее полезные особенности работы с iptables можно изучить в статье «CentOS 7: Настройка iptables с помощью командной строки».

4. Серверная часть.

4.1. Подключение репозитория epel.

PEL или Extra Packages for Enterprise Linux – это репозиторий дополнительных пакетов для Red Hat, поддерживаемый командой проекта Fedora. Здесь есть новые версии программ, а также некоторые другие программы, которых нет в официальных репозиториях.

Установим и подключим репозиторий epel:
# yum --enablerepo=extras -y install epel-release

Подробнее о подключении новых репозиториев можно узнать из статьи «CentOS 7: Репозитории SСL, EPEL, IUS, REMI, GHETTOFORGE».

4.2. Установка BackupPC.

Установим саму систему BackupPC и программы для синхронизации:

# yum --enablerepo=epel-testing -y install BackupPC-XS rsync-bpc

4.3. Установка Apache.

Установим Apache, а так же сопутствующее программное обеспечение для работы и передачи файлов:

# yum -y install bzip2 httpd mod_perl par2cmdline perl-Archive-Zip perl-CGI perl-Compress-Raw-Zlib perl-Data-Dumper perl-Digest-MD5 perl-File-Listing perl-File-RsyncP perl-Net-FTP-AutoReconnect perl-Net-FTP-RetrHandle perl-Time-ParseDate perl-XML-RSS perl-version rrdtool samba-client rsync

Это будет долгая и длинная установка!

4.4. Подготовка каталогов.

У меня для резервного хранения файлов на BackupPC сервере подключен отдельный большой HDD емкостью на 3Tb в отдельный каталог /3tb в общей файловой системе CentOS 7.

Как подключить диск простым каталогом читайте в статье «CentOS 7: Как добавить новый диск».

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

Создадим папку backuppc на моем большом диске:

# mkdir -p /3tb/backuppc

Примечание: эта папка потом вырастет до гигантских размеров и будет вмещать все резервные копии с файлов со всех серверов.

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

# mkdir -p /var/www/html/backuppc

И создадим cgi-bin каталог для backuppc:

# mkdir -p /var/www/cgi-bin/backuppc

Внимание! Установщик запросит эти 3 каталога, если мы явно не установим их ниже в конфигурации скрипта установки системы BackupPC.

4.5. Создание сервисной учетной записи.

Для работы системы резервного копирования BackupPC на сервере под управлением CentOS 7 и Apache требуется отдельная учетная запись на имя пользователя backuppc.

Создадим группу backuppc:

# groupadd backuppc

Создадим учетную запись на имя пользователя backuppc. Мой домашний каталог пользователя backuppc будет /opt/backuppc. Вы можете поменять его на любой другой, какой вам больше нравится.

# useradd --home-dir /opt/backuppc --create-home --shell /bin/bash --base-dir /opt/backuppc --gid backuppc backuppc

4.6. Права доступа к каталогам.

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

# chown -R backuppc:backuppc /3tb/backuppc
# chown -R backuppc:backuppc /opt/backuppc

4.7. Скачивание архива BackupPC.

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

Выйдем в домашний каталог:

# cd ~

Ссылка на сайт разработчиков: https://backuppc.github.io/backuppc/.

Скачаем архив с системой в него:

# wget https://github.com/backuppc/backuppc/releases/download/4.4.0/BackupPC-4.4.0.tar.gz

Распакуем его в него:

# tar zxf BackupPC-4.4.0.tar.gz

Зайдем в распакованный каталог из архива:

# cd BackupPC-4.4.0

4.8. Запуск скрипта configure.pl автоустановки.

Внимание! Обращайте максимальное внимание к тому, что вы тут запрограммируете по каталогам.

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

# perl configure.pl --batch --cgi-dir /var/www/cgi-bin/backuppc --data-dir /3tb/backuppc --hostname backuppc --html-dir /var/www/html/backuppc --html-dir-url /backuppc --install-dir /opt/backuppc

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

Поэтому недостающие компоненты скомпилируем сами! Нам понадобится программное обеспечение для работы с git и gcc (GNU Compiler Collection) — стандартный компилятор используемый в Linux.

Лечится оно так:

# yum -y install git gcc

# git clone https://github.com/backuppc/backuppc-xs.git

# cd backuppc-xs/

# perl Makefile.PL

# make

# make test (может ответить ошибками)

# make install

После установки недостающих компонентов, снова запустите скрипт configure.pl автоустановки. Всё должно начать ставиться дольше без ошибок и завершиться вот такими надписями на экране.

Примечание. Конечно вы можете запустить установку скрипта configure.pl автоустановки и без предварительно прописанных аргументов, но он заставит вас отвечать на все эти пункты вручную шаг за шагом. Такой метод автоустановки без предварительных аргументов будет предпочтителен, если вы делаете upgrade старой системы BackupPC версии 3, но в данной инструкции это не рассматривается! Мы ставим новую систему резервного копирования BackupPC на чистовую.

Внимание! Если вы сделали первую длинную строчку из этого раздела инструкции, то эту команду вводить в консоль не надо!

# perl configure.pl

4.9. Настройка Apache.

Я выбрал маршрут CGI (не SCGI) и выбрал каталог /var/www/cgi-bin/backuppc для моего каталога CGI. В качестве каталога хранения резервных копий я выбрал /var/www/html/backuppc. Возможно, потребуется задать эти пути в конфигурации вручную, если вы запустили configure.pl сценарий без аргументов.

Теперь нам нужно скопировать конфигурацию Apache в общий каталог конфигураций conf.d, из той папки, куда мы разархивировали, скачанный с сайта разработчиков, архив с системой BackupPC.

# cp /root/BackupPC-4.4.0/httpd/BackupPC.conf /etc/httpd/conf.d/

Прежде чем начать модифицировать BackupPC.conf под себя создадим его резервную копию:

# cp /etc/httpd/conf.d/BackupPC.conf /etc/httpd/conf.d/BackupPC.conf.back_copy

Чтобы авторизация заработала, необходимо в файле /etc/httpd/conf.d/BackupPC.conf в разделе Directory добавить параметр AllowOverride.

# mcedit /etc/httpd/conf.d/BackupPC.conf

Теперь приведем файл конфигурации BackupPC.conf к следующему виду:

<Directory /var/www/cgi-bin/backuppc>

order deny,allow
deny from all
allow from all

AuthType Basic
AuthUserFile /etc/BackupPC/BackupPC.users
AuthName "BackupPC Community Edition Administrative Interface"
require valid-user

</Directory>

Alias /backuppc /var/www/html/backuppc
ScriptAlias /BackupPC_Admin /var/www/cgi-bin/backuppc/BackupPC_Admin

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

# mcedit /etc/httpd/conf/httpd.conf

Отредактируем httpd.conf и заменим по смыслу строки User apache на User backuppc:

User apache
Group apache

на

User backuppc
Group apache

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

4.10. Организация авторизации.

Создадим BackupPC аутентификационный файл.

# htpasswd -c /etc/BackupPC/BackupPC.users backuppc

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

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

Примечание: имя пользователя ‘backuppc‘ для аутентификационного файла можно придумать любой на своё усмотрение.

Если файла BackupPC.users уже существует, то исключите ключ -c. Чтобы добавить других пользователей в файл паролей, используйте команду htpasswd без флага -c:

# htpasswd /etc/BackupPC/BackupPC.users backuppc

Проверим появление файла в каталоге:

# cat /etc/BackupPC/BackupPC.users

Пример содержимого файла:

Admin:$apr$Gg/NNV$2OIMrVrviCk
User1:gbDwY2f5$GMrVrvW6qgbDwY

Установим права на этот файл:

# chown backuppc:apache /etc/BackupPC/BackupPC.users

# chmod -R 755 /etc/BackupPC/BackupPC.users

Если этого не сделать, то будет высказать ошибка доступа к разделу «HTTP 500 Internal Server Error».

4.11. Настройка BackupPC.

Отредактируем config.pl в каталоге /etc/BackupPC/, но перед этим сделаем его резервную копию.

Скопируем:

# cp /etc/BackupPC/config.pl /etc/BackupPC/config.pl.copy

Начнем сверку и редактирование:

# mcedit /etc/BackupPC/config.pl

Проверим содержимое файла по записям, согласно заранее утвержденным нами каталогами выше по тексту инструкции:

$Conf{CgiImageDir} = '/var/www/html/backuppc';
$Conf{CgiImageDirURL} = '/backuppc';

Добавим между кавычками пользователя с именем backuppc в специальной графе:

$Conf{CgiAdminUserGroup} = '';
$Conf{CgiAdminUsers}     = 'backuppc';

Сохраним изменения.

4.12. Автозапуск работы BackupPC.

# cp /root/BackupPC-4.4.0/systemd/backuppc.service /etc/systemd/system/
# systemctl daemon-reload
# systemctl start backuppc
# systemctl enable backuppc

Проверим работу службы:

# systemctl status backuppc -l

Посмотрим log-файл BackupPC:

# tail -f /var/log/BackupPC/LOG

Всё заработало!

Жмем «Ctrl» + «z» и прерываем чтение log-файла.

4.13. Автозапуск работы Apache.

Установка необходимых прав:

# chmod u+s /var/www/cgi-bin/backuppc/BackupPC_Admin

Проверим синтаксис в конфигурационных файлах:

# apachectl configtest

Всё хорошо!

Сделаем автозапуск Apache:

# systemctl start httpd
# systemctl enable httpd

Проверим работу Apache:

# systemctl status httpd

Посмотрим какой порт слушает Apache:

# yum -y install net-tools

# netstat -nlpt | grep httpd

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

4.14. Проверка web-интерфейса BackupPC.

Для проверки работы системы резервного копирования BackupPC, перейдем по ссылке:

Ссылка: http://yourserverip/BackupPC_Admin

Ссылка: http://192.168.0.20/BackupPC_Admin

Логин и пароль использовать, тот который создавали выше по тексту.

Если ничего нет, то проверяйте настройки конфигураций Apache и iptables. Скорее всего вы допустили опечатку.

5. Клиентская часть.

5.1. Генерация ключей SSH на клиентах.

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

# ssh-keygen

На все вопросы серверов просто жмем Enter, пароль не вводим. Нам нужна беспарольная аутентификация!

Подробнее об этой процедуре можно почитать в статье «CentOS 7: Настройка и использование SSH, он же Secure Shell».

5.2. Генерация ключей SSH на сервере.

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

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

Это позволит также восстанавливать backup файлы/каталоги на удаленные клиент.

# grep backuppc /etc/passwd

# usermod -s /bin/bash backuppc

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

# su - backuppc

$ pwd

$ ssh-keygen -t rsa

Внимание! Везде жмем на все вопросы ENTER и НЕ ЗАДАЕМ пароль, чтобы соединение шло по ключу!

Если ввести пароль, то потом будет ошибка в логах при попытке сделать копию.

Если нужно с паролем, то делаем пароль и отключаем его использование потом командой после всех манипуляций:

# usermod -s /sbin/nologin backuppc

5.3. Проброс SSH-ключа клиента на сервер.

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

# su - backuppc

В качестве клиентов будет выступать пару серверов: первый web-сервер под CentOS 7 (192.168.0.12) и второй ftp-сервер под CentOS 7 (192.168.0.6). При подключении для передачи SSH-ключей, сервера будут спрашивать важе желание (отвечаем yes) и просить пароль от root учетной записи на каждом из серверов. Вводим все пароли и команды внимательно. Если там стоят системы защиты, то можем получить бан от них.

Первый web-сервер (192.168.0.12):

$ ssh-copy-id root@192.168.0.12

Второй ftp-сервер (192.168.0.6):

$ ssh-copy-id root@192.168.0.6

5.4. Установка rsync на клиентах.

Проверяем аутентификацию по SSH-ключу без пароля при подключении с BackupPC-сервера на клиентов.

Первый web-сервер (192.168.0.12):

$ ssh root@192.168.0.12

Заходим по ssh на первый клиент и устанавливаем rsync традиционным способом:

# yum -y install rsync

Не забываем выйти из клиента обратно на свой сервер резервного копирования:

$ exit

Второй ftp-сервер (192.168.0.6):

$ ssh root@192.168.0.6

Заходим по ssh на первый клиент и устанавливаем rsync традиционным способом:

# yum -y install rsync

Не забываем выйти из клиента обратно на свой сервер резервного копирования:

$ exit

Внимание! Не забудьте вернуться обратно на сервер на BackupPC! Иначе будете хозяйничать на том, куда вошли. Внешне сразу не понять, если не присматриваться.

6. Настройка резервного копирования клиентов в web-интерфейсе.

Соединение установлено, вы ввели пароль от входа в web-интерфейс, попали в консоль удаленного сервера BackupPC.

В настройках web-интерфейса можно выбрать русский язык. Для этого проследуем по цепочке Edit Config -> CGI -> Language выбрать ru.

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

Выбираем пункт Edit Hosts и заполняем форму:

  1. Жмем Add, появится поле для вода IP-адреса клиента, вводим IP-адрес клиента. Жмем еще раз! Еще вводим второй адрес. Указываем IP-адрес хоста и пользователя, под которым выполняется резервное копирование. У нас это пользователь root на обоих клиентах.
  2. Сверху над этой таблицей ввода параметров клиентов есть надпись Save. Нажмём на Save и сохраним результаты нашего ввода.

После сохранения вкладки Hosts, переходим в во вкладку Xfer и добавляем данную информацию с соответствующие поля таблицы:

  • XferMethod = rsync (копируем этой утилитой и этим методом).
  • RsyncClientPath = /usr/bin/rsync (путь к программе rsync самом на хосте).

Нажимаем кнопку Save и сохраняем введенную информацию.

Выбираем свой хост. Идем в параметры хоста. Edit Config -> выбираем пункт Xfer. Видим, что тут всё пусто.

Вносим такие же изменения, важные пункты подчеркнуты:

  • XferMethod = rsync (копируем этой утилитой и этим методом).
  • RsyncShareName = /web (мой важный каталог с содержимым сайтов, добавим для него новую строку кнопкой Add) или указываем путь к директории, которую мы хотим резервно копировать.

Внимание! Если вы смонтировали устройство в каталог, то нужно его на копирование заказывать отдельно! В данном случае каталог /web — это отдельное физическое устройство, которое было заранее смонтировано в систему отдельным каталогом.

Продвигаемся ниже по страничке…

  • BackupFilesExclude — каталоги, которые принудительно исключены из списка для резервного копирования. Делаем резервную копию всех каталогов, за исключением указанных:
    • /dev
    • /media
    • /mnt
    • /proc
    • /sys
  • RsyncClientPath = /usr/bin/rsync (путь к программе rsync на самом хосте).

Нажимаем кнопу Save и сохраняем свои результаты.

Снова заходим в закладку Server —> Edit Config, заполняем внизу поля так, как нам надо, если у нас будет храниться копия на другом диске. Не системном. Если вы настроили всё строго по инструкции, то здесь в параметре TopDir (каталог хранения файлов резервного копирования) будет указана та папка, в которую мы определили храниться на отдельном большом HDD выше по тексту резервные копии файлов.

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

Идем в Server пункт Edit Config —> Schedule. Нас интересует пункт BlackoutPeriods:

Внимание! Тут самый интересный момент! Прошу обратить повышенное внимание!

Нюанс №1: Если вы видите указанно время 19.5, то это НЕ СООТВЕТСТВУЕТ времени 19:50, а соответствует времени 19:30, вот такой парадокс!

Нюанс №2: В терминологии BlackoutPeriods — время, когда нельзя проводить резервное копирование, то есть, если на скриншоте начало периода в «7″, а завершение «19.5″, то резервное копирование может осуществляться в интервале с 19:30 по 7:00 следующего дня, по усмотрению системы.

Если вам нужно например резервное копирование выполнялось ночью 1:00 до 2:00, то BlackoutPeriods принимает вид hourBegin «2«, а hourEnd «1«.

Нюанс №3: Шаг таймера 30 минут. То есть задания отрабатывают каждые полчаса, не чаще!

Переходим в пункт Home в панели управления хостом, жмём Start Full Backup. Сразу оно может и не начать копировать, затаится, сверится с тем периодом, в котором ему разрешено запускать процесс копирования. Это очень сильно грузит общий канал связи между серверами во время сеанса резервного копирования.

Сервер еще раз поинтересуется твёрдым намереньем сделать резервную копию клиента:

Отвечаем Start Full Backup. Начнётся резервное копирование согласно заранее утвержденному временному регламенту и списку включений и исключений из файлов конфигурации:

Вернемся в обратно на Home страницу клиента кликнув на ссылку 192.168.0.12 home page.

Подождем некоторое время. Минут 10-15 и проверим log-файлы. Сервер резервного копирования стартует не сразу, а в плавающий период времени и по своему желанию. Посмотрим что и как стартовало. Нет ли критических ошибок, препятствующих успешному выполнению резервного копирования.

Нажимаем пункт меню навигации LOG file и смотрим успешный старт резервного копирования.

Увидим примерно следующее. Наши папки для резервного копирования начали резервно копироваться! Полное и инкрементное копирование может происходит от часа до нескольких дней. Всё завсист от пропускной способности вашей сети. Ждем… Закончено!

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

7. Восстановление из резервной копии.

В данном случае всё просто! Всё напоминает простое копирование файлов себе на компьютер из интернета.

Заходим в нужный хост, выбираем в меню пункт Browse backup, выбираем каталог по дереву каталогов, ставим галочку на каталог или файл, жмем Restore selected files.

Далее откроется следующая станица с вариантами действий:

  • Option 1: Direct Restore — восстановить напрямую резервную копию сразу на самом хосте принудительно и прямо поверх локальной текущей версии на самом хосте.
  • Option 2: Download Zip archive — скачать архив с заказанной копией (то что отметили галочкой) на компьютер в браузере которого запущен web-интерфейс сервера резервного копирования. Можно выбрать степень сжатия архива, для экономии трафика и кодировку названия каталогов и файлов в архиве. По умолчанию кириллица отображается корректно.
  • Option 3: Download Tar archive — скачать архив с полной веткой дерева каталогов (то что отметили галочкой) на компьютер в браузере которого запущен web-интерфейс сервера резервного копирования.

8. Восстановление из резервной копии на новую клиентскую машину.

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

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

Откроем для редактирования файл с ключами и модифицируем его:

# /opt/backuppc/.ssh/known_hosts

Было — три известных ключа для работы с клиентами:

192.168.0.12 ecdsa-sha2-nistp256 длинный_ключ=
192.168.0.31 ecdsa-sha2-nistp256 длинный_ключ=
192.168.0.37 ecdsa-sha2-nistp256 длинный_ключ=

Стало — удалим уже не действительные строки с ключами клиентов:

192.168.0.12 ecdsa-sha2-nistp256 длинный_ключ=
192.168.0.31 ecdsa-sha2-nistp256 длинный_ключ=

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

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

# ssh-copy-id root@192.168.0.37

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

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

Внимание! Не забудьте поставить на клиент rsync, если его там не установлено, иначе работать ничего не будет!

9. Решение ошибок.

9.1. Ошибка: can’t ping.

Ошибка: при попытке штатного копирования копирование не происходит, выходит ошибка.

2020-06-11 13:47:14 ping too slow on 180.170.44.40 26.84msec
2020-06-11 13:47:14 can’t ping 180.170.40.40 (client = 185.178.44.45); exiting

Решение: если с хостом всё в порядке, и там просто отключены ответы на пингование, то копирование нужно запускать в принудительном режиме.

Для этого заходим в Edit Config хоста, ищем пункт PingCmd и меняем его содержимое и ставим галочку в override:

$pingPath -c 1 $host

на

/bin/echo

Нажимаем клавишу Save.

Перезагружаем сервис BackupPC на сервере:

# systemctl restart backuppc

Пробуем копирование снова.

Логирование хоста сообщает:

2020-06-15 10:28:36 full backup started for directory /

Всё заработало в штатном режиме.

10. Оригиналы источников информации.

  1. github.com «Installing BackupPC 4 from tarball on CentOS 7».
  2. backuppc.github.io «BackupPC — High-performance, enterprise-grade backup».
  3. github.com «Welcome to the backuppc wiki!».
  4. itsolutiondesign.wordpress.com «no ping response».

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