Main > Linux > CentOS 7: Настройка BackupPC

CentOS 7: Настройка BackupPC

02.03.2016 0 comments » Views: 6,004

Логотип BackupPC

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

Установка в CentOS 7 простая:

В зависимостях Apache и Perl. После установки, нужно сгенерить пользователя:

и добавить доступ вашему ip в конфигурацию апача:

Перезапускаем Apache:

При необходимости так же стартуем BackupPC и добавляем его в автозагрузку:

Теперь открываем в браузере: http://server.loc/backuppc , где server.loc = адрес вашего сервака

вот тут я получил такую ошибку:

Error: Unable to connect to BackupPC server

This CGI script (/backuppc) is unable to connect to the BackupPC server on localhost port -1.
The error was: unix connect: No such file or directory.
Perhaps the BackupPC server is not running or there is a configuration error. Please report this to your Sys Admin.

Лично я вообще не понял по этому сообщению в чем проблема, однако я посмотрел логи:

и увидел следующее:

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

дальше надо перезапустить сервис:

Заходим опять в панельку: http://server.loc/backuppc , теперь ошибок нет.

Тут, есть важное замечание. Если на данном этапе у Вас все заработало, попробуйте перезагрузить ПК. Разумеется, если есть такая возможность. В моем случае, созданная папка
/var/run/BackupPC автоматом удалилась. Я не особо знаком с архитектурой сервисов, но похоже, все папки /var/run/* должны создаваться в момент запуска сервиса автоматически. Я решил этот вопрос правкой init скрипта. Для этого, открыл: /etc/init.d/backuppc , и добавил в раздел start создание папки:

Если в Вашей версии такой проблемы нет, то и делать этого не нужно.

Так, ошибок нет, но нет и опций для управления:

Опции управления

Опции управления

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

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

$Conf{CgiAdminUsers}     = 'username';

сохраняемся и перезапускаем сервис:

Теперь у нас появилось побольше возможностей:

BackupPC дополнительные возможности

BackupPC дополнительные возможности

Дальше как только я переключился на вкладку "Edit Config>Server" я получил такие ошибки:

Error: No save due to errors
Error: Bzip2Path must be a valid executable path

Случилось это потому, что у меня не установлен bzip2, устанавливаем:

Соответственно, если у Вас не установленно что-то, что указано на этой вкладке, устанавливаете сами:

BackupPC зависимости

BackupPC зависимости

Например, на моем скриншоте отсутствует PingPath, поэтому его нужно тут прописать, ищем где он в системе и добавляем, в моем случае это:

Предварительная настройка сделанна, теперь делаем дополнительные. Т.к. в моем случае, бэкап системе надо ходить на другой ПК, то нужно выбрать способ которым она будет это делать. В моем случае, это будет Rsync через SSH, поэтому описывать буду именно его. Про другие способы просто погуглите и найдете много описаний с картинками, например тут описано как бэкапить шары Windows.

Т.к. при обычном коннекте по SSH, надо вводить пароль - такой способ авторизации нам не подходит. Поэтому мы воспользуемся авторизацией "по ключу" (см. п.7 Use Public/Private Keys for Authentication). Чтобы не путаться в названиях, уточню: клиент = бэкап сервер, там где установлен backuppc (буду называть БЭКАП СЕРВЕР) ; сервер = это комп с источником для бэкапа (буду называть КОМП).

Прежде всего, надо включить bash для пользователя backuppc, делаем это так:

теперь входим под пользователем backuppc:

далее генерируем ssh ключи:

** На запрос passphrase, нажимаем просто Enter,

Дальше нужно скопировать public key на КОМП. Тут можно поступить разными способами, я предпочел на КОМПе создать пользователя backuppc, и импортировать ключ именно ему. Таким образом, при необходимости будет возможность ограничить ему доступ только к нужным данным. Разумеется в зависимости от ситуации это могут быть и другие пользователи: www-data или даже root. Тут уж решайте сами.

Итак идем на КОМП и создаем пользователя и задаем ему пароль:

Теперь возвращаемся на БЭКАП СЕРВЕР и копируем созданный ранее публичный ключ:

** тут 192.168.101.138 = адрес КОМПа в локальной сети

На запрос о соединении вводим yes и вводим пароль, который мы указали для пользователя backuppc созданного на КОМПе (строчкой выше), должен получиться примерно такой диалог:

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

Отлично, теперь соединение по ключу настроенно. Здесь на БЭКАП СЕРВЕРЕ, можно поменять консоль на nologin, чтобы запретить логин в эту учетку:

мне она пока нужна, поэтому я не стал её отключать.

Теперь, настраиваем сам backuppc, идем в браузер и добавляем новый хост:

Добавляем новый хост

Добавляем новый хост

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

После того, как добавили хост выбираем его в выпадающем списке и настраиваем уже параметры бэкапа. Если Вы настраивали работу от пользователя root, то для теста достаточно указать тестовую папку:

Тестовая конфигурация

Тестовая конфигурация

Мне же, т.к. я использую другого пользователя (backuppc), нужно его указать в параметрах RsyncClientCmd и RsyncClientRestoreCmd:

Изменение пользователя BackupPC

Изменение пользователя BackupPC

Теперь можно запускать, переходим в раздел Home и нажимаем [Start Full Backup]:

Запуск генерации бэкапа

Запуск генерации бэкапа

После этих действий, должны появиться бэкапы:

Бэкапы сгенерировались

Бэкапы сгенерировались

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

В качестве небольшого дополнения, расскажу что делать, если у Вас, как у меня, диск для хранения всякого разного находится в другом месте. Например у меня это Raid 1, смонтированный в /mnt/md0. Для того, чтобы перенести место хранения файлов BackupPC, просто создаем папку:

теперь копируем в неё оригинальную папку BackupPC:

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

Теперь меняем настройку TopDir в настройках BackupPC и создаем симлинк на новое место:

проверяем, если все работает, можно удалять /var/lib/BackupPC.tmp . Симлинк нужно создавать т.к. туда (/var/lib/BackupPC) указывает домашняя директория пользователя backuppc, при желании это можно исправить и полностью избавиться от этой директории, но я не стал этого делать.

На сегодня это всё. Хотел написать небольшую заметку, но получилась целая статья.

--[часто возникающие вопросы, ошибки и их причины]--

  • Got fatal error during xfer (Unable to read 4 bytes). Backup aborted (Unable to read 4 bytes)
    Не может подконнектиться к серверу. Войдите под выбранным пользователем, и проверьте что происходит коннект по ssh ключу, без запроса пароля. Так же проверьте, чтобы был установлен корректный пользователь в шаблонах RsyncClientCmd и RsyncClientRestoreCmd, которые находятся на вкладку Xfer, конфигурации хоста.
  • Error: {Any}Path must be a valid executable path
    Не найден путь к программе. Проверьте настройку путей к программам.
  • Что будет, если во время бэкапа отключить комп, с которого происходит бэкап?
    Ничего страшного не будет. То что успело скопироваться будет помечено как Partial backup. В следующий раз будет сделан инкрементный бэкап, либо продолжит делаться полный бэкап в случае использования rsync. Подробнее поведение описанно тут: Backup basics > Partial backup:

    When a full backup fails or is canceled, and some files have already been backed up, BackupPC keeps a partial backup containing just the files that were backed up successfully. The partial backup is removed when the next successful backup completes, or if another full backup fails resulting in a newer partial backup. A failed full backup that has not backed up any files, or any failed incremental backup, is removed; no partial backup is saved in these cases.
    The partial backup may be browsed or used to restore files just like a successful full or incremental backup.
    With the rsync transfer method the partial backup is used to resume the next full backup, avoiding the need to retransfer the file data already in the partial backup.

Author: | Rating: 4/5 | Tags: ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>