Files
backup-manager/README.md
T

164 lines
3.4 KiB
Markdown
Raw Normal View History

2026-04-14 13:16:43 +04:00
# OpenWrt Backup Manager (APK Version)
2026-01-25 16:38:44 +04:00
2026-04-13 15:07:22 +04:00
Автономный набор скриптов для бэкапа и восстановления конфигурации и пакетов на OpenWrt.
## Возможности
#### Бэкап
- системных конфигов
- пользовательских файлов
2026-04-14 13:16:43 +04:00
- списка установленных пакетов (`apk`)
2026-04-13 15:07:22 +04:00
#### Восстановление
- конфигурации через sysupgrade
- пакетов из сохранённого списка
#### Поддержка удалённого хранилища
2026-04-14 13:16:43 +04:00
- `NFS`
2026-04-14 13:32:53 +04:00
- `SMB`
2026-04-13 15:07:22 +04:00
#### Очистка старых бэкапов (локально и удалённо)
## Структура
```bash
.
2026-04-14 13:18:23 +04:00
├── .env # конфиг-файл
2026-04-13 15:07:22 +04:00
├── backup-manager.sh # основной скрипт
├── backup-configs.sh # сбор конфигураций
├── backup-apk.sh # работа с пакетами
├── README.md
```
## Настройка
2026-04-14 13:16:43 +04:00
Скопируйте пример настроек:
```bash
cp ./.env-example ./.env
```
Отредактируйте переменные в `.env`:
2026-04-13 15:07:22 +04:00
### Хранилище
```bash
STORAGE_TYPE="nfs" # nfs или smb
S_HOST="nfs.lan"
S_PATH="/mnt/media1/backup"
```
### Для SMB
```bash
SMB_USER="guest"
SMB_PASS="guest"
```
### Политика хранения
```bash
LOCAL_KEEP=10 # сколько хранить локально
HOST_KEEP=30 # сколько дней хранить удалённо
```
### Что бэкапить
```bash
C_LIST="
/etc/config
/etc/xray
/root/.ssh
...
"
```
### Что исключить
```bash
C_EXCLUDE="
/opt/.backup-manager/local_backups
/etc/xray/ipset
"
```
### Конфликтующие пакеты
Удаляются перед восстановлением:
```bash
H_REPLACE="wpad dnsmasq"
```
## Использование
### Создать бэкап
```bash
./backup-manager.sh backup
```
#### Что происходит:
2026-04-14 13:16:43 +04:00
- создаётся архив `.tar.gz`
- сохраняется список пакетов `.lst`
2026-04-13 15:07:22 +04:00
- копируется на удалённое хранилище (если доступно)
### Восстановление
```bash
./backup-manager.sh restore
```
#### Далее интерактивно:
1. Выбор источника (локальный / удалённый)
2. Выбор типа:
- конфигурация
- пакеты
## Как работает бэкап пакетов
#### Скрипт:
- определяет пакеты, установленные пользователем
- исключает зависимости
## Зависимости
#### Для NFS
2026-04-14 13:16:43 +04:00
```bash
apk add nfs-utils kmod-fs-nfs kmod-fs-nfs-v3 kmod-fs-nfs-v4
2026-04-13 15:07:22 +04:00
```
2026-04-14 13:32:53 +04:00
#### Для SMB
2026-04-14 13:16:43 +04:00
```bash
apk add cifsmount kmod-fs-cifs
2026-04-13 15:07:22 +04:00
```
## Особенности
2026-04-14 13:16:43 +04:00
- Используется временная директория: `/tmp`
2026-04-13 15:07:22 +04:00
- При восстановлении пакетов:
- временно правится DNS (Cloudflare)
- Для восстановления конфигурации используется:
2026-04-14 13:16:43 +04:00
```bash
2026-04-13 15:07:22 +04:00
sysupgrade -r backup.tar.gz
```
## Очистка
#### Автоматически:
- старые локальные бэкапы
2026-04-14 13:16:43 +04:00
- удалённые файлы старше `HOST_KEEP` дней
2026-04-13 15:07:22 +04:00
## Пример cron
2026-04-14 13:16:43 +04:00
```bash
2026-04-13 15:07:22 +04:00
0 3 * * * /opt/.backup-manager/backup-manager.sh backup
```