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

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


backuppc

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

backuppc [2018/08/14 10:02]
backuppc [2020/06/13 13:45] (текущий)
Строка 1: Строка 1:
 +====== BackupPC ======
 +
 +~~Title: BackupPC - система резервного копирования (обновление 2018.08) ~~
 +{{htmlmetatags>
 +metatag-keywords=(BackupPC)
 +metatag-description=(BackupPC — свободное ПО для резервного копирования данных с управлением через веб-интерфейс. Обзор и настройка BackupPC.)
 +}}
 +
 +{{ ::backuppc-02.jpg?nolink&400 |}}
 +
 +Homepage: [[http://backuppc.sourceforge.net|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
 +
 +<code bash>
 +# aptitude install backuppc
 +</code>
 +Автоматически будет создан пароль для пользователя 'backuppc'. Чтобы изменить пароль, запустите команду 'htpasswd /etc/backuppc/htpasswd backuppc'. Изменим расположение директории для бекапов. config.pl - основной конфигурационный файл:
 +<code perl>
 +# cd /etc/backuppc/
 +# nano config.pl
 +$Conf{TopDir} = '/home/keephdd/backuppc';
 +$Conf{PingMaxMsec} = 200;
 +$Conf{PingPath} = '/bin/ping';
 +$Conf{Ping6Path} = '/bin/ping6';
 +
 +# mkdir -p /home/keephdd/backuppc/pc
 +# mkdir -p /home/keephdd/backuppc/cpool
 +# chown -R backuppc:backuppc /home/keephdd/backuppc
 +# /etc/init.d/backuppc restart
 +</code>
 +Дальнейшие настройки производятся через Web интерфейс по адресу http://backuppc_server_ip/backuppc
 +
 +===== Резервное копирование по SSH =====
 +Для использования протокола [[SSH]] для резервного копирования данных с клиентского компьютера, следует создать ключи доступа.
 +
 +==== Сервер ====
 +
 +  * Создаем ключи на сервере с установленным BackupPC
 +<file bash>
 +# su - backuppc
 +$ mkdir .ssh
 +$ cd .ssh
 +$ ssh-keygen -t rsa -C remuserbak@backuppc
 +</file>на все вопросы просто жмем клавишу Enter<file bash>
 +$ 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
 +</file>
 +С приватным ключом id_rsa программа BackupPC будет подключаться к клиентским компьютерам. На клиентские компьютер должен быть перенесён публичный ключ, сделаем это при помощи утилиты [[SSH]]-copy-id, она автоматически создаст файл authorized_keys с нашим ключем в директории .ssh. Например:<file bash>
 +ssh-copy-id -i id_rsa.pub remuserbak@<IP клиента>
 +</file>
 +
 +==== Клиент Ubuntu 16.04.3 LTS ====
 +
 +Создаем пользователя от имени которого будет производиться копирование данных и задаем ему сложный пароль. Пароль нам понадобится один раз для копирования ssh ключа.
 +<file bash>
 +adduser remuserbak
 +usermod -aG sudo,adm remuserbak
 +</file>
 +Даем права на запуск sudo без пароля пользователю remuserbak. В самый конец файла добавляем строчку
 +<file bash>
 +> visudo
 +remuserbak ALL=NOPASSWD: /bin/tar, /usr/bin/rsync
 +</file>
 +Переносим публичный ключ, сделаем это при помощи утилиты SSH-copy-id. Для этого на сервере, где установлен сервер BackupPC, от имени пользователя, от которого запускается демон backuppc, запускаем утилиту ssh-copy-id<file bash>
 +su - backuppc
 +ssh-copy-id -i .ssh/id_rsa.pub remuserbak@xxx.xxx.xxx.xxx
 +</file> Для того того что все работает, подключитесь к клиентскому компьютеру используя команду<file>
 +ssh 'remuserbak@xxx.xxx.xxx.xxx'
 +</file>Дальнейшая настройка происходит через веб-интерфейс <file>
 +http://backuppc_server_ip/backuppc
 +</file>
 +  - Страница Edit Hosts добавляем адрес клиента и имя пользователя, от которого будет совершаться копирование данных, в нашем примере это пользователь remuserbak
 +  - В настройках клиента, на странице Xfer Settings указываем XferMethod = [[rsync]], в параметре RsyncShareName задаем директории для копирования
 +  - **Не забываем заменить пользователя root на remuserbak в строках RsyncClientCmd и RsyncClientRestoreCmd.** Эти изменения можно задать как глобально для всего сервера BackupPC, так и индивидуально для каждого клиента. **Не забываем явно для каждого клиента задавать путь к sudo.**<file bash>
 +$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+';
 +</file>
 +  - Всё!
 +
 +===== Клиенты =====
 +**Не забываем явно для каждого клиента задавать путь к sudo.**
 +  * **Backup [[smb]] ресурсов**. [[Server requested LANMAN password (share-level security) but 'client lanman auth' is disabled]]
 +
 +==== 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]]: <code>
 +# visudo
 +...
 +Defaults       env_reset
 +#Defaults !lecture
 +
 +backuppc ALL=NOPASSWD: /bin/tar, /usr/bin/rsync, /usr/bin/env
 +</code> пришлось разрешить /usr/bin/env иначе возникает ошибка Got fatal error during xfer (sudo: no tty present and no askpass program specified)
 +==== Клиент для FreeBSD ====
 +
 +  * **Backup [[ssh]] ресурсов**. **Настройка клиента для ОС FreeBSD**. Используем [[rsync]]: <code>> 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
 +</code>С приватным ключом id_rsa программа BackupPC будет подключаться к клиентским компютерам. На клиентские компьютер должен быть перенесён публичный ключ, сделаем это при помощи утилиты **[[ssh]]-copy-id**, она автоматически создаст файл authorized_keys с нашим ключем в директории .ssh<code>
 +$ 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.
 +</code> Для того чтобы убедиться что все действия выполнены успешно, пробуем подключиться по ssh с сервера. Если пароль не запрашивается, значит все в порядке.<code>ssh remuserbak@xxx.xxx.xxx.254</code> **Для FreeBSD в настройках Xfer Settings** меняем 3 параметра: путь к [[rsync]] на клиентском компьютере и в ручную меняем строку запуска вместо -l root прописываем нашего пользователя .<code>$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+';
 +</code>
 +
 +
 +
 +====== FAQ. How to purge backups for a host? ======
 +
 +Если нужно удалить полностью резервные файлы для хоста. Вам может понадобиться очистка пула. Его размер вы можете посмотреть в логе системы после перезапуска BackupPC.
 +
 +Очистить пулл BackupPC:<file bash>
 +su - backuppc
 +$ /usr/share/backuppc/bin/BackupPC_nightly 0 255
 +BackupPC_stats 0 = pool,0,0,0,0,0,0,0,0,0,0,
 +...
 +</file>
 +
 +====== 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. 
 +<file bash>
 +$Conf{PingPath} = '/bin/ping';
 +# inserted '/bin/ping6' for default '':
 +$Conf{Ping6Path} = '/bin/ping6';
 +</file>Не забываем перезапустить сервис<file bash>
 +service backuppc restart
 +</file>
 +