Меню Рубрики

Установка backuppc для ubuntu

Как настроить кросс-платформенный сервер резервного копирования на Linux с BackupPC

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

Особенности BackupPC

BackupPC поставляется с надёжным веб-интерфейсом, который позволяет вам собирать и управлять централизованным образом резервными копированиями других удалённых хостов. Используя веб-интерфейс, вы можете изучить файлы журналов и конфигурационные файлы, запустить/отменить/настроить расписания резервных копирований удалённых хостов и визуализировать текущий статус задач резервного копирования. Вы также можете просматривать архивные файлы и очень просто восстанавливать отдельные файлы или всё полностью из архивов бэкапов. Для восстановления индивидуальных отдельных файлов, вы можете загружать их из предыдущих бэкапов прямо в веб-интерфейсе. Если этого недостаточно, не требуется специальной программы на стороне клиента для клиентских хостов. На Windows клиентах используется родной протокол SMB, в то время как на *nix клиентах вы будете использовать rsync или tar через SSH, RSH или NFS.

Установка BackupPC

На Debian, Ubuntu, Mint и их производных запустите следующую команду.

На Fedora используйте команду yum command. Обратите внимание, что имя пакета регистрозависимое.

На CentOS/RHEL 6 сначала включите репозиторий EPEL. На CentOS/RHEL 7 включите вместо репозиторий Nux Dextop. Затем продолжайте с командой yum:

Далее команды на разных дистрибутивах Linux идентичны, пользователи Debian, Ubuntu, Mint и их производных не забывайте ставить sudo перед каждой командой.

Как обычно, обе системы управления пакетами будут заботиться об автоматическом разрешении зависимостей. В дополнение как часть установочного процесса, вас могут спросить настроить почтовый сервер, настроить или перенастроить веб-сервер, который будет использован для графического пользовательского интерфейса. Я не стал ничего настраивать в почтовом сервере (чтобы не удлинять инструкцию). Следующие скриншоты из системы Debian:

Сделайте ваш выбор нажав на пробел и затем перейдите к Ок, используя кнопку [Tab], и нажмите [Enter].

Вам будет представлена следующий экран, информирующий вас, что администраторский пользовательский аккаунт ‘backuppc’ с соответствующим ему паролем (который, по желанию, может быть изменён), был создан для управления BackupPC. Обратите внимание, что пользовательский аккаунт HTTP и обычный Linux аккаунт с одинаковым именем ‘backuppc’ будут созданы с идентичным паролем. Первый нужен для получения доступа в защищённый веб-интерфейс BackupPC, в то время как второй нужен для выполнения резервного копирования используя rsync через SSH.

Вы можете изменить пароль по умолчанию для HTTP пользователя ‘backuppc’ следующей командой:

Для изменения обычного ‘backuppc’ пользовательского аккаунта Linux, используйте команду passwd.

Обратите внимание, что установочный процесс автоматически создаст веб и программный конфигурационные файлы.

Запуск BackupPC и настройка Backups

Чтобы начать, откройте окно браузера по адресу http:// /backuppc/. Когда появится окно запроса, введите данные HTTP пользователя, которые были предоставлены вам ранее. Если авторизация успешна, вас перекинет на главную страницу веб-интерфейса.

Наиболее вероятно, первое, что вам нужно сделать, это добавить хосты клиентов для резервного копирования. Перейдите в “Edit Hosts” (редактирвоание хостов) в панеле задач. Мы добавим два клиентских хоста:

  • Host #1: CentOS 7 [IP 192.168.0.17]
  • Host #2: Windows 7 [IP 192.168.0.103]

Мы будем делать резервное копирование CentOS, используя rsync через SSH, и хоста Windows, используя SMB. До выполнения резервного копирования, нам нужно настроить основанную на ключе аутентификацию на наш хост CentOS и сделать доступной по сети (расшарить) каталог на Windows машине.

Вот инструкция для настройки аутентификации, основанной на ключе, для удалённого хоста CentOS. Мы создаём пользователю ‘backuppc’ пару ключей RSA и переносим публичный ключ в аккаунт рута хоста CentOS.

Когда спросят, напечатайте yes и введите пароль рута для 192.168.0.17.

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

Когда хосты CentOS и Windows готовы, добавьте их в BackupPC используя веб-интерфейс:

Следующий шаг состоит из изменения настроек резервного копирования каждого хоста:

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

А следующий скриншот показывает настройку резервного копирования для CentOS:

Запуск резервного копирования

Для запуска каждого резервного копирования, перейдите к настройкам каждого хоста, а затем кликните “Start Full Backup”:

Читайте также:  Установка кабельного телевидения в канске

В любое время, вы можете просмотреть статус процесса, кликнув на home хоста, как показано в изображении выше. Если это по каким-либо причинам не получилось, также появится ссылка на страницу с сообщением ошибки (ошибок) в меню хоста. Когда резервное копирвоание завершено успешно, на сервере создаётся каталог с названием хоста или IP адресом в /var/lib/backuppc/pc:

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

Восстановление резервных копий

Для просмотра сохранённых файлов, переходите в раздел “Browse backups”, что находится в главном меню хоста. Вы можете визуализировать каталоги и файлы с первого взгляда и выбрать те, которые вы хотите восстановить. Как вариант, вы можете кликнуть по файлу и открыть его, используя программу по умолчанию, или кликните правой кнопкой и выберете Сохранить ссылку, для его загрузки на машину, где вы работаете в данный момент:

Если хотите, то можете загрузить файлы zip или tar, заключающие содержание резеврных копий или просто восстановите файл (файлы) на прежнее место:

Заключение

Говорят «Чем проще — тем лучше», и именно это предлагает BackupPC. В BackupPC вы найдёте не только инструмент для резервного копирования, но также разносторонний интерфейс для управления вашими резервными копиями нескольких операционных систем без необходимости приложения на стороне клиента. Я уверен, что более чем достаточная причина, чтобы хотя бы попробовать.

Оставляйте ваши комментарии и вопросы, если они у вас есть, используя форму внизу. Я всегда счастлив услышать, что говорят читатели!

источник

Debian → BackupPC настройка системы резервного копирования Debian / Ubuntu

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

Случай из жизни, моего коллеги. Честное слово, не моя история.
Была у него ферма WEB серверов, на кортом крутился довольно крупный проект, все было ничего, ферма насчитывала более 10 узлов, а синхронизация данных между узлами выполнялась с помощью rsync, и вот однажды, в конце рабочего дня, то есть «по запарке» сотрудник грохнул часть файлов CMS, немного «протупив» и не поняв что он сделал с самого начала, открыл список процессов и увидал что появился процесс rsync. Вот тут к нему пришло просветление, что он сидит и смотрит как rsync бодро удаляет файлы CMS на остальных серверах, тут, как говорится, волосы на заднице у него и зашевелились… Результатом стало частичное удаление файлов CMS и как следствие- полная неработоспособность всего сайта. Вывод сделан моментально: «RSYNC -сука… быстрый. »
Вот тут наступает кульминация- мой любимый момент… 🙂
Хорошо что была, а главное, работала система резервного копирования, на сайт была оперативно выставлена заглушка, файлы CMS были оперативно восстановлены из инкрементальной копии, которая была создана с помощью BackupPC, а rsync бодро растащил файлы по серверам.
Недоступность сервиса составила менее 5 мин (по данным мониторинга), коллега конечно премию за такое деяние не получил, но и жестокой анальной кары избежал, здравствует по сей день.
Тут имеет место человеческий фактор, который является самым непредсказуемым.
Вот от проблем такого рода и им подобных, помогает избавиться или хотя бы минимизировать последствия, система резервного копирования.

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

Настраиваем сервер BackupPC

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

Установим требуемые пакеты

ответим на вопросы установщика, по сути это правила для настройки почтовых уведомлений
Определяем тип почтового хоста, я выбрал smarthost — когда почта отправляется через внешний почтовый сервер

Читайте также:  Установка бензобака от газели на уаз

Укажем от чего имени будет уходить почта, сервер называется master.example.org — подтягивается из имени системы, но можно указать и свои данные.

Указываем через кого будет отправляться почта. Предполагается что имя почтового сервера smtp.example.org

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

Теперь если мы попытаемся зайти в WEB интерфейс backuppc, то у нас ничего не получится, т.к. у нас требуют пароль для входа, которого у нас нет, для этого нам нужно добавить запись в файл htpasswd, у нас есть 2 варианта генерирования данного пароля:
1) установить apache2-utils

И затем сгенерировать файл командой

указав пароль, получить готовый файл

2) воспользоваться online-генератором
результат работы которого сохраняем в файл:

В общем я заранее «подсуетился» и сгенерировал файл, . ТОЛЬКО ДЛЯ ТЕСТИРОНИЯ. логин backuppc, пароль backuppc

Сохраняем изменения и перезапускаем apache

Идем в Web-интерфейс по адресу httр://server_ip_address/backuppc.
Указываем логин и пароль который мы придумали и попадаем в web интерфейс.
В котором пока пусто

Система завелась, а это считай пол дела сделано.

Теперь нам требуется создать ssh-ключ, про сути нам требуется создавать ключ только один раз, в дальнейшем его копировать на другие машины чтобы можно было выполнять подключение по SSH к клиентским машинам, для выполнения резервного копирования

Парольную фразу не указываем, чтобы подключение осуществлялось без ввода пароля для ключа.
Из написанного понятно что мы указываем длину ключа 1024bit, место где его сохранить /var/lib/backuppc/ и имя файла ключа key
В директории у нас появилось 2 файла с именами key и key.pub
key-закрытый ключ, его оставляем на сервере резервного копирования
key.pub — открытый ключ (сертифкат), его мы будем тиражировать на машины, резервное копирование которых будем выполнять, по нему будет выполняться подключение, его можно раскидать по другим машинам, на них генерировать ничего не нужно и этот, рутинный, процесс можно автоматизировать скриптом.

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

Копируем ключ key в директорию .ssh

Установим права на файл ключа:

Предоставим пользователю backuppc права доступа на директорию и файл

Вот тут нас подстерегает легкий подвох, если адрес сервера, к которому осуществляется подключение, не добавлен в файл known_hosts, то соединение не установится, нужно набрать yes, чего сервер backuppc сам делать не умеет, соответственно работать ничего не будет. Соединение будет выглядеть так:


нам достаточно набрать yes, а соответсвующая запись запись добавится в файл /var/lib/backuppc/.ssh/known_hosts

Нам поможет StrictHostKeyChecking

Каждый раз при добавлении сервера устанавливать соединение руками чтобы набрать yes слишком нудно, представьте что вам требуется добавить несколько десятков хостов и что каждый раз коннектиться руками к каждому чтобы добавлять удаленный хост в список известных, это совершенно не «комильфо», чтобы это автоматизировать, мы кроме ключа добавим еще и конфиг.
Создаем файл:

Теперь ввода yes система не потребует, а сервер бэкапов сам будет добавлять записи, по мере их поступления, в файл known_hosts.

Настройка резервного копирования клиентской машины Linux (Ubuntu)

Настройка клиентской машины

Алгоритм действий довольно прост и отлично поддается автоматизации:
1) Создать пользователя backuppс
2) Добавить ему открытый ключ
3) Разрешить вход по ключу на сервере SSH
4) Предоставить необходимые права в системе

1- Создаем пользователя
Пользователя, под которым мы будем запускать выполнение задач резервного копирования, мы назовем backuppc естественно, что на реальных системах, такого делать не стоит и нужно указывать имя отличное от названия ПО — в целях безопасности, ну и чтобы никто не догадался.

и ответим на вопросы системы, указав пароль.

2-Добавляем пользователю открытый ключ
Мы создали пользователя backuppc, теперь нам требуется создать директорию для хранения ключей

Установим права на эту директорию

Копируем ключ key.bub в директорию .ssh тогда путь к нему будет:

Переименовываем key.pub в authorized_keys и предоставляем нужные права доступа.
переименуем файл:

Установим права на файл ключа:

Сделаем пользователя backuppc владельцем директории и файла

3-Разрешаем вход по ключу, на сервере SSH

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

Читайте также:  Установка инверторная аргонно дуговой сварки

Находим строку и снимаем с нее комментарий

Это говорит системе где искать ключ пользователя и какое имя файла ключа (для этого мы и переименовали key.pub в authorized_keys)

4- Предоставить необходимые права в системе

Предоставляем пользователю backuppc права доступа, чтобы он мог выполнять действия со всеми файлами в системе, а для этого ему нужны права root.
Полный доступ в систему предоставлять не правильно, мы разрешим ему запускать только rsync через sudo чтобы система не спрашивала пароль, больше ничего!
Для этого отредактируем файл

Где:
backuppc — имя пользователя
ALL = NOPASSWD: /usr/bin/rsync — задаем права на запуск одного приложения с правами root без пароля, это rsync ну и указываем путь к нему.

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

Настройка параметров резервного копирования на сервере BackupPC

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

Перерзайдем под пользователем backuppc

Установим подключение по SSH к удаленному серверу командной.

где:
ssh — собственно то что мы запускаем
-i — указывает на то что авторизация идет по ключу
/var/lib/backuppc/.ssh/key — путь где лежит ключ и сам файл ключа.
backuppc — пользователь под которым осуществляется подключение
client.example.org -адрес машины к которой выполняется подключение

Соединение установлено и вы попали в консоль удаленного сервера, система не просила набрать yes при подключении и все работает отлично.

Осталось настроить задание.
Выбираем пункт Edit Hosts
И заполняем форму:

Указываем адрес хоста и пользователя под которым выполняется резервное копирование.
И нажимаем Save
Ну и идем в параметры хоста, выбираем пункт Xfer
Важные пункты подчеркнуты

rsync — Метод синхронизации
RsyncShareName — указываем путь к директории, которую мы хотим бэкапить
RsyncClientCmd — параметры подключения к серверу для выполнения резервного копирования
RsyncClientRestoreCmd — параметры подключения к серверу для выполнения восстановления
На последних 2х пунктах остановимся по подробнее
Там указано следующее

Естественно нам оно не подходит, по этому мы сформируем свою команду для выполнения подключения.
Внимание правильный ответ:

Где:
$sshPath -путь к директории где лежит SSH
-q — тихое подключение
-x — не пробразывать х11
-i — используем аторизацию по ключу
/var/lib/backuppc/.ssh/key -путь где у нас лежит ключ
backuppc — логин с которым мы подключаемся
$host — переменная отвечающая за адрес хоста
/usr/bin/sudo — указываем путь к sudo, чтобы с ним запустить ПО
$rsyncPath — переменная которая отвечает за путь к rsync который будет запущен под sudo
$argList+ — переменная отвечающая за список аргументов для rsync
В параметры восстановления добавляем тоже самое.
Жмем Save и пробуем бэкапить руками, то что мы тут настроили, перейдя в пункт с $hostname Home и нажав кнопку Start Full Backup
Все ошибки пишутся в лог, который можно посмотреть в пункте LOG file

мы настроили в параметры подключения, нам осталось создать задание и его расписание.
Идем в пункт Edit Config -> Shedule
нас интересует пункт 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мин т.е. задания отрабатывают каждые пол часа, не чаще…

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

Куда складываются резервные копии?
В директорию:

На этом все, если есть вопросы, то прошу в комментарии, если нашли ошибку, прошу в личку ну или черкните письмо на почту.

источник

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