Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия | |||
— | backuppc [2024/12/18 15:33] (текущий) – [FAQ. How to purge backups for a host?] darkfire | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== BackupPC ====== | ||
+ | ~~Title: Установка и настройка BackupPC сервера (+Nginx) и клиентов ~~ | ||
+ | {{htmlmetatags> | ||
+ | metatag-keywords=(BackupPC) | ||
+ | metatag-description=(BackupPC — свободное ПО для резервного копирования данных с управлением через веб-интерфейс. Обзор и настройка BackupPC.) | ||
+ | }} | ||
+ | |||
+ | {{ :: | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | **Возможности BackupPC:** | ||
+ | * Не требует установленного клиента. | ||
+ | * **Дедупликация данных**. Идентичные файлы в нескольких резервных копиях одного и того же или разных ПК сохраняются только один раз, что приводит к существенной экономии дискового пространства и дискового ввода-вывода. | ||
+ | * BackupPC является SMB‐ клиентом, | ||
+ | * Поддерживаются все возможности восстановления, | ||
+ | * Интеллектуальная схема пулинга, | ||
+ | * Опция сжатия обеспечивает дополнительное уменьшение размера резервной копии. Нагрузка на процессор при этом низка, так как сжатию подвергаются только новые файлы (которых ещё нет в пуле). | ||
+ | * Мощный http/cgi интерфейс позволяет администраторам | ||
+ | * Не нужно никаких клиентских программ. Для Windows применяется протокол SMB. А для Linux или Unix можно использовать rsync или tar (через ssh/ | ||
+ | * Гибкие опции восстановления. Как одиночные файлы, так и Zip и Tar архивы выбранных файлов и каталогов могут быть восстановлены непосредственно в CGI интерфейсе. | ||
+ | * BackupPC поддерживает мобильные устройства, | ||
+ | * Гибкие параметры конфигурации позволяют параллельное выполнение нескольких задач резервного копирования. | ||
+ | |||
+ | Рекомендую для резервирования связку [[automysqlbackup|AutoMySQLBackup]] и BackupPC. | ||
+ | |||
+ | ====== Хостинг для развёртывания BackupPC ====== | ||
+ | Программа | ||
+ | * [[https:// | ||
+ | |||
+ | ===== Установка BackupPC на сервер ===== | ||
+ | Руководство обновлено для Ubuntu 22 BackupPC 4.4 | ||
+ | |||
+ | <code bash> | ||
+ | apt install backuppc | ||
+ | </ | ||
+ | Автоматически будет создан пароль для пользователя ' | ||
+ | htpasswd / | ||
+ | </ | ||
+ | <code perl> | ||
+ | # nano / | ||
+ | |||
+ | $Conf{TopDir} = '/ | ||
+ | $Conf{PingMaxMsec} = 200; | ||
+ | $Conf{PingPath} = '/ | ||
+ | $Conf{Ping6Path} = '/ | ||
+ | |||
+ | # mkdir -p / | ||
+ | # mkdir -p / | ||
+ | # chown -R backuppc: | ||
+ | # systemctl restart backuppc | ||
+ | </ | ||
+ | Дальнейшие настройки для Apache производятся через Web интерфейс по адресу http:// | ||
+ | |||
+ | ==== Настройка BackupPC на Apache ==== | ||
+ | Здесь все просто - в комплекте находится готовый конфигурационный файл под вебсервер Apache, который устанавливается при установке BackupPC (/ | ||
+ | <file bash> | ||
+ | Alias /backuppc / | ||
+ | |||
+ | < | ||
+ | AllowOverride None | ||
+ | |||
+ | # Uncomment the line below to ensure that nobody can sniff important | ||
+ | # info from network traffic during editing of the BackupPC config or | ||
+ | # when browsing/ | ||
+ | # Requires that you have your webserver set up for SSL (https) access. | ||
+ | # | ||
+ | |||
+ | Options ExecCGI FollowSymlinks | ||
+ | AddHandler cgi-script .cgi | ||
+ | DirectoryIndex index.cgi | ||
+ | |||
+ | AuthUserFile / | ||
+ | AuthType basic | ||
+ | AuthName " | ||
+ | |||
+ | < | ||
+ | # Comment out this line once you have setup HTTPS and uncommented SSLRequireSSL | ||
+ | Require local | ||
+ | |||
+ | # This line ensures that only authenticated users may access your backups | ||
+ | Require valid-user | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | ==== Настройка BackupPC на Nginx ==== | ||
+ | Если не установлен пакет Perl, установите | ||
+ | <file bash> | ||
+ | apt install perl | ||
+ | </ | ||
+ | Установим поддержку CGI (scgi) в [[Nginx|Nginx]] | ||
+ | <file bash> | ||
+ | apt install fcgiwrap | ||
+ | systemctl enable fcgiwrap | ||
+ | systemctl start fcgiwrap | ||
+ | </ | ||
+ | Создаем файл конфигурации backuppc для Nginx | ||
+ | <file bash> | ||
+ | / | ||
+ | </ | ||
+ | <file bash> | ||
+ | server { | ||
+ | listen < | ||
+ | server_name < | ||
+ | root / | ||
+ | index cgi-bin/ | ||
+ | |||
+ | access_log | ||
+ | error_log | ||
+ | |||
+ | location / { | ||
+ | location /backuppc { | ||
+ | alias / | ||
+ | } | ||
+ | |||
+ | auth_basic " | ||
+ | auth_basic_user_file / | ||
+ | |||
+ | location ~ \.cgi$ { | ||
+ | include fastcgi_params; | ||
+ | fastcgi_pass unix:/ | ||
+ | |||
+ | fastcgi_param REMOTE_ADDR | ||
+ | fastcgi_param REMOTE_USER | ||
+ | fastcgi_param SCRIPT_FILENAME / | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | Подключаем его и перегружаем Nginx: | ||
+ | <file bash> | ||
+ | ln -s / | ||
+ | nginx -s reload | ||
+ | </ | ||
+ | ==== Бэкап локальных директорий сервера BackupPC ==== | ||
+ | Возможные ошибки бекапа локальных директорий на сервере BackupPC: | ||
+ | * Backup failed on localhost (Tar exited with error 512 () status) | ||
+ | * Got fatal error during xfer (sudo: no tty present and no askpass program specified) | ||
+ | |||
+ | Бэкап локальных директорий по умолчанию не работает, | ||
+ | $Conf{TarClientCmd} = '/ | ||
+ | </ | ||
+ | $Conf{TarClientCmd} = '/ | ||
+ | </ | ||
+ | # visudo | ||
+ | backuppc ALL=NOPASSWD: | ||
+ | </ | ||
+ | |||
+ | ==== Настройка расписания (Schedule) резервного копирования ==== | ||
+ | Расписание резервного копирования (Backup Schedule) по умолчанию: | ||
+ | * Полная резервная копия каждые 7 дней, хранить только самую новую копию. | ||
+ | * Инкрементное резервное копирование каждый день, храните шесть самых последних резервных копий. | ||
+ | |||
+ | Если вы хотите изменить интервал, | ||
+ | |||
+ | Полные резервные копии имеют значение " | ||
+ | |||
+ | Вы можете изменить количество резервных копий, которые поддерживает система. Вы также можете указать время, когда резервное копирование не должно выполняться, | ||
+ | |||
+ | В этом руководстве мы будем придерживаться значений по умолчанию. | ||
+ | * Параметр FullKeepCnt задает количество полных бэкапов (по умолчанию 1) | ||
+ | * Параметр FullAgeMax какое количество дней хранить бэкапы | ||
+ | |||
+ | * Полная резервная копия: | ||
+ | <file bash> | ||
+ | FullPeriod — минимальное время в днях между полными бекапами | ||
+ | FullKeepCnt — сколько полных бекапов необходимо хранить | ||
+ | FullKeepCntMin — минимальное количество хранимых полных бекапов | ||
+ | FullAgeMax — максимальный возраст хранимого полного бекапа | ||
+ | </ | ||
+ | |||
+ | |||
+ | * Инкрементальная резервная копия: | ||
+ | <file bash> | ||
+ | IncrPeriod — минимальное время в днях между инкрементальными бекапами | ||
+ | IncrKeepCnt — сколько инкрементальных бекапов необходимо хранить | ||
+ | IncrKeepCntMin — минимальное количество хранимых инкрементальных бекапов | ||
+ | IncrAgeMax — максимальный возраст хранимого инкрементального бекапа | ||
+ | IncrLevels — уровень инкрементального бекапа | ||
+ | IncrFill — использовать в системе хард-линки, | ||
+ | </ | ||
+ | ===== Резервное копирование BackupPC по SSH ===== | ||
+ | Для использования протокола [[SSH|SSH]] для резервного копирования данных с клиентского компьютера, | ||
+ | |||
+ | ==== Сервер ==== | ||
+ | |||
+ | * Создаем ключи на сервере с установленным BackupPC | ||
+ | <file bash> | ||
+ | # su - backuppc | ||
+ | $ mkdir .ssh | ||
+ | $ cd .ssh | ||
+ | $ ssh-keygen -t rsa -C remuserbak@backuppc | ||
+ | </ | ||
+ | $ chmod 600 id_rsa | ||
+ | $ ls -l | ||
+ | -rw------- 1 backuppc backuppc 1675 Фев 12 14:59 id_rsa | ||
+ | -rw-r--r-- 1 backuppc backuppc | ||
+ | </ | ||
+ | С приватным ключом id_rsa программа BackupPC будет подключаться к клиентским компьютерам. На клиентские компьютер должен быть перенесён публичный ключ, сделаем это при помощи утилиты [[SSH|SSH]]-copy-id, | ||
+ | ssh-copy-id -i id_rsa.pub remuserbak@< | ||
+ | </ | ||
+ | |||
+ | ==== Клиент Ubuntu, FreeBSD ==== | ||
+ | Алгоритм настройки довольно прост и поддается автоматизации, | ||
+ | - Создать пользователя remuserbak. | ||
+ | - Предоставить необходимые права в системе для созданного пользователя. | ||
+ | - Добавить ему открытый ключ (созданный на сервере). | ||
+ | - Разрешить вход по ключу на сервере SSH. | ||
+ | Создаем пользователя от имени которого будет производиться копирование данных и задаем ему сложный пароль. Пароль нам понадобится один раз для копирования ssh ключа. | ||
+ | <file bash> | ||
+ | adduser remuserbak | ||
+ | usermod -aG sudo remuserbak | ||
+ | </ | ||
+ | Даем права на запуск sudo без пароля пользователю remuserbak. В самый конец файла добавляем строчку | ||
+ | <file bash> | ||
+ | > visudo | ||
+ | remuserbak ALL=NOPASSWD: | ||
+ | </ | ||
+ | Переносим публичный ключ, сделаем это при помощи утилиты SSH-copy-id. Для этого на сервере, | ||
+ | su - backuppc | ||
+ | ssh-copy-id -i .ssh/ | ||
+ | </ | ||
+ | Для того чтобы проверить, | ||
+ | ssh ' | ||
+ | </ | ||
+ | <file bash> | ||
+ | nano / | ||
+ | Host * | ||
+ | StrictHostKeyChecking no | ||
+ | </ | ||
+ | Или добавить в настройки подключения BackupPC следующие опции: | ||
+ | <file bash> | ||
+ | -o StrictHostKeyChecking=no -o UserKnownHostsFile=/ | ||
+ | </ | ||
+ | |||
+ | Дальнейшая настройка происходит через веб-интерфейс: | ||
+ | - Страница Edit Hosts добавляем адрес клиента и имя пользователя, | ||
+ | - В настройках клиента, | ||
+ | - Меняем пользователя root на remuserbak в поле RsyncSshArgs. И добавляем в RsyncClientPath запуск программы rsync под sudo. Эти изменения можно задать как глобально для всего сервера BackupPC, так и индивидуально для каждого клиента. | ||
+ | {{ :: | ||
+ | |||
+ | **Всё!** | ||
+ | |||
+ | Для более старых версии BackupPC пункт 3 меняется по другому. Нужно заменить пользователя root на remuserbak в строках RsyncClientCmd и RsyncClientRestoreCmd: | ||
+ | $Conf{RsyncClientCmd} = ' | ||
+ | $Conf{RsyncClientRestoreCmd} = ' | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Резервное копирование BackupPC по FTP ===== | ||
+ | Зачастую хостеры представляющие услуга виртуального хостинга блокирует подключение по SSH. Но резервировать надо и нам остаётся использовать только протокол FTP. | ||
+ | |||
+ | В версии BackupPC 4 и выше появилась встроенная возможность использовать клиента FTP для резервирования. | ||
+ | |||
+ | Но я предпочитаю монтировать удаленный FTP сервер при помощи [[montirovanie_udaljonnoj_papki|curlftpfs]] и далее rsynx делать бэкап локально. Из опыта так надежнее и проще. | ||
+ | |||
+ | - Устанавливаем под вашу ОС, как описано в статье [[montirovanie_udaljonnoj_papki]] | ||
+ | ===== FAQ. How to purge backups for a host? ===== | ||
+ | Если нужно удалить полностью резервные файлы для хоста. Вам может понадобиться очистка пула (директория cpool). Его размер вы можете посмотреть в логе системы после перезапуска BackupPC. Перед запуском очистки пула обязательно остановите демона backuppc. Очистить пулл BackupPC: | ||
+ | <file bash> | ||
+ | systemctl stop backuppc | ||
+ | sudo -u backuppc / | ||
+ | </ | ||
+ | Или под пользователем от которого запущен демон BackupPC | ||
+ | <file bash> | ||
+ | su - backuppc | ||
+ | $ / | ||
+ | BackupPC_stats 0 = pool, | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | ===== FAQ. BackupPC: ping too slow ===== | ||
+ | |||
+ | **BackupPC: ping too slow**. При возникновении этой ошибки бекап не производится. Для устранения нужно изменить параметр до 200 $Conf{PingMaxMsec} = 200; | ||
+ | |||
+ | ===== FAQ. BackupPC: "no ping response" | ||
+ | |||
+ | После инсталляции BackupPC на Ubuntu, столкнулся тем что не архивируется localhost (то есть сервер на котором установлен непосредственно демон backuppc). В логе backuppc для localhost пишет ошибку no ping response. | ||
+ | |||
+ | Для устранения ошибки нужно прописать путь к утилите [[ping]] в директиве $Conf{Ping6Path} в файле / | ||
+ | <file bash> | ||
+ | $Conf{PingPath} = '/ | ||
+ | # inserted '/ | ||
+ | $Conf{Ping6Path} = '/ | ||
+ | </ | ||
+ | systemctl restart backuppc | ||
+ | </ | ||
+ | |||
+ | ===== Заключение ===== | ||
+ | BackupPC — это мощный и удобный способ автоматического резервного копирования файлов с нескольких серверов в центральное хранилище. Резервные копии необходимы для любой производственной среды. Не менее важно убедиться, | ||
+ | |||
+ | Существует множество инструментов резервного копирования для Linux и Unix-подобных операционных систем. Выберите решение, | ||
+ | <panel type=" | ||
+ | * [[cheklist_nastrojka_vps_vds_vydelennogo_servera_linux]] | ||
+ | * [[po_dlja_rezervnogo_kopirovanija]] | ||
+ | * [[rclone]] | ||
+ | </ |
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга