Инструменты пользователя

Инструменты сайта


backuppc

BackupPC

Homepage: BackupPC лицензия GNU GPL 2.

BackupPC - система резервного копирования, ориентированная на диски.

Возможности BackupPC:

  • Не требует установленного клиента.
  • BackupPC является SMB‐ клиентом, поддерживает SSH, использует tar - часто используемые ключи и rsync.
  • Поддерживаются все возможности восстановления, в том числе прямое восстановление (через smbclient, tar, или rsync/rsyncd), загрузка zip или tar - часто используемые ключи архивов.
  • Интеллектуальная схема пулинга, минимизирующая дисковые ресурсы и ввод/вывод. Идентичные файлы во множестве резервных копий на одном и том же или разных PC сохраняются только единожды, что приводит к экономии дискового пространства и уменьшению количества операций записи. Это также называется "дедупликация данных".
  • Опция сжатия обеспечивает дополнительное уменьшение размера резервной копии. Нагрузка на процессор при этом низка, так как сжатию подвергаются только новые файлы (которых ещё нет в пуле).
  • Мощный http/cgi интерфейс позволяет администраторам просматривать логи, конфигурацию, текущий статус, а пользователям - начинать и отменять резервное копирование, просматривать и восстанавливать файлы из резервных копий.
  • Не нужно никаких клиентских программ. Для Windows применяется протокол SMB. А для Linux или Unix можно использовать rsync или tar (через ssh/rsh/nfs).
  • Гибкие опции восстановления. Как одиночные файлы, так и Zip и Tar архивы выбранных файлов и каталогов могут быть восстановлены непосредственно в CGI интерфейсе.
  • BackupPC поддерживает мобильные устройства, где имеется непостоянное подключение к сети и динамическая адресация (DHCP).
  • Гибкие параметры конфигурации позволяют параллельное выполнение нескольких задач резервного копирования.

Установка BackupPC на сервер Ubuntu

BackupPC 3.3 Ubuntu 16.04.3 LTS

# aptitude install backuppc

Автоматически будет создан пароль для пользователя 'backuppc'. Чтобы изменить пароль, запустите команду 'htpasswd /etc/backuppc/htpasswd backuppc'. Изменим расположение директории для бекапов. config.pl - основной конфигурационный файл:

# cd /etc/backuppc/
# nano config.pl
$Conf{TopDir} = '/home/keephdd/backuppc';
$Conf{PingMaxMsec} = 200;
 
# mkdir -p /home/keephdd/backuppc/pc
# mkdir -p /home/keephdd/backuppc/cpool
# chown -R backuppc:backuppc /home/keephdd/backuppc
# /etc/init.d/backuppc restart

Дальнейшие настройки производятся через Web интерфейс по адресу http://backuppc_server_ip/backuppc

Резервное копирование по SSH

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

Сервер

  • Создаем ключи на сервере с установленным BackupPC
# su - backuppc
$ mkdir .ssh
$ cd .ssh
$ ssh-keygen -t rsa -C remuserbak@backuppc

на все вопросы просто жмем клавишу Enter

$ chmod 600 id_rsa
$ ls -l 
-rw------- 1 backuppc backuppc 1675 Фев 12 14:59 id_rsa
-rw-r--r-- 1 backuppc backuppc  401 Фев 12 14:59 id_rsa.pub

С приватным ключом id_rsa программа BackupPC будет подключаться к клиентским компьютерам. На клиентские компьютер должен быть перенесён публичный ключ, сделаем это при помощи утилиты SSH-copy-id, она автоматически создаст файл authorized_keys с нашим ключем в директории .ssh. Например:

ssh-copy-id -i id_rsa.pub remuserbak@<IP клиента>

Клиент Ubuntu 16.04.3 LTS

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

adduser remuserbak
usermod -aG sudo,adm remuserbak

Даем права на запуск sudo без пароля пользователю remuserbak. В самый конец файла добавляем строчку

> visudo
remuserbak ALL=NOPASSWD: /bin/tar, /usr/bin/rsync

Переносим публичный ключ, сделаем это при помощи утилиты SSH-copy-id. Для этого на сервере, где установлен сервер BackupPC, от имени пользователя, от которого запускается демон backuppc, запускаем утилиту ssh-copy-id

su - backuppc
ssh-copy-id -i .ssh/id_rsa.pub remuserbak@xxx.xxx.xxx.xxx

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

ssh 'remuserbak@xxx.xxx.xxx.xxx'

Дальнейшая настройка происходит через веб-интерфейс

http://backuppc_server_ip/backuppc
  1. Страница Edit Hosts добавляем адрес клиента и имя пользователя, от которого будет совершаться копирование данных, в нашем примере это пользователь remuserbak
  2. В настройках клиента, на странице Xfer Settings указываем XferMethod = rsync, в параметре RsyncShareName задаем директории для копирования
  3. Не забываем заменить пользователя root на remuserbak в строках RsyncClientCmd и RsyncClientRestoreCmd. Эти изменения можно задать как глобально для всего сервера BackupPC, так и индивидуально для каждого клиента. Не забываем явно для каждого клиента задавать путь к sudo.
    $Conf{RsyncClientCmd} = '$sshPath -q -x -l remuserbak $host /usr/bin/sudo $rsyncPath $argList+';
    $Conf{RsyncClientRestoreCmd} = '$sshPath -q -x -l remuserbak $host /usr/bin/sudo $rsyncPath $argList+';
  4. Всё!

Клиенты

Не забываем явно для каждого клиента задавать путь к sudo.

Backup локальных директорий

  • Backup локальных директорий. Через веб-интерфейс изменяем параметр TarClientCmd или в файле /etc/backuppc/localhost.pl меняем строку $Conf{TarClientCmd} = '/usr/bin/env LC_ALL=C $tarPath -c -v -f - -C $shareName –totals' Заменяем на $Conf{TarClientCmd} = '/usr/bin/sudo /usr/bin/env LC_ALL=C $tarPath -c -v -f - -C $shareName –totals' Настраиваем sudo - выполнение команд от root или любой ламер может стать админом:
    # visudo
    ...
    Defaults       env_reset
    #Defaults !lecture
    
    backuppc ALL=NOPASSWD: /bin/tar, /usr/bin/rsync, /usr/bin/env

    пришлось разрешить /usr/bin/env иначе возникает ошибка Got fatal error during xfer (sudo: no tty present and no askpass program specified)

Клиент для FreeBSD

  • Backup SSH ресурсов. Настройка клиента для ОС FreeBSD. Используем rsync:
    > adduser remuserbak
    # Даем права на запуск sudo без пароля пользователю remuserbak
    > visudo
    ...
    remuserbak      ALL=NOPASSWD: /usr/bin/tar, /usr/local/bin/rsync
    # Создаем ключи на сервере с установленным BackupPC
    # su - backuppc
    $ mkdir .ssh
    $ cd .ssh
    $ ssh-keygen -t rsa -C remuserbak@test4
    $ chmod 600 id_rsa
    $ ls -l 
    -rw------- 1 backuppc backuppc 1675 2010-03-04 10:41 id_rsa
    -rw-r--r-- 1 backuppc backuppc  405 2010-03-04 10:41 id_rsa.pub

    С приватным ключом id_rsa программа BackupPC будет подключаться к клиентским компютерам. На клиентские компьютер должен быть перенесён публичный ключ, сделаем это при помощи утилиты SSH-copy-id, она автоматически создаст файл authorized_keys с нашим ключем в директории .ssh

    $ ssh-copy-id -i id_rsa.pub remuserbak@xxx.xxx.xxx.254
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'xxx.xxx.xxx.254' (DSA) to the list of known hosts.
    Password:
    Now try logging into the machine, with "ssh 'remuserbak@xxx.xxx.xxx.254'", and check in:
    
      .ssh/authorized_keys
    
    to make sure we haven't added extra keys that you weren't expecting.

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

    ssh remuserbak@xxx.xxx.xxx.254

    Для FreeBSD в настройках Xfer Settings меняем 3 параметра: путь к rsync на клиентском компьютере и в ручную меняем строку запуска вместо -l root прописываем нашего пользователя .

    $Conf{RsyncClientPath} = '/usr/local/bin/rsync';
    $Conf{RsyncClientCmd} = '$sshPath -q -x -l remuserbak $host /usr/bin/sudo $rsyncPath $argList+';
    $Conf{RsyncClientRestoreCmd} = '$sshPath -q -x -l remuserbak $host /usr/bin/sudo $rsyncPath $argList+';

FAQ. How to purge backups for a host?

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

Очистить пулл BackupPC:

su - backuppc
$ /usr/share/backuppc/bin/BackupPC_nightly 0 255
BackupPC_stats 0 = pool,0,0,0,0,0,0,0,0,0,0,
...

FAQ. BackupPC: ping too slow

BackupPC: ping too slow. При возникновении этой ошибки бекап не производится. Для устранения нужно изменить параметр до 200 $Conf{PingMaxMsec} = 200;

FAQ. BackupPC: "no ping response" for localhost

После инсталляции BackupPC на Ubuntu, столкнулся тем что не архивируется localhost (то есть сервер на котором установлен непосредственно демон backuppc). В логе backuppc для localhost пишет ошибку no ping response.

Для устранения ошибки нужно прописать путь к утилите ping в директиве $Conf{Ping6Path} в файле /etc/backuppc/config.pl.

$Conf{PingPath} = '/bin/ping';
# inserted '/bin/ping6' for default '':
$Conf{Ping6Path} = '/bin/ping6';

Не забываем перезапустить сервис

service backuppc restart

Ссылки

загрузка...
backuppc.txt · Последние изменения: 2018/02/27 09:11 — darkfire