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
|
|
|
|
|
|
```
|