Files
2026-04-14 13:32:53 +04:00

164 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# OpenWrt Backup Manager (APK Version)
Автономный набор скриптов для бэкапа и восстановления конфигурации и пакетов на OpenWrt.
## Возможности
#### Бэкап
- системных конфигов
- пользовательских файлов
- списка установленных пакетов (`apk`)
#### Восстановление
- конфигурации через sysupgrade
- пакетов из сохранённого списка
#### Поддержка удалённого хранилища
- `NFS`
- `SMB`
#### Очистка старых бэкапов (локально и удалённо)
## Структура
```bash
.
├── .env # конфиг-файл
├── backup-manager.sh # основной скрипт
├── backup-configs.sh # сбор конфигураций
├── backup-apk.sh # работа с пакетами
├── README.md
```
## Настройка
Скопируйте пример настроек:
```bash
cp ./.env-example ./.env
```
Отредактируйте переменные в `.env`:
### Хранилище
```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
```
#### Что происходит:
- создаётся архив `.tar.gz`
- сохраняется список пакетов `.lst`
- копируется на удалённое хранилище (если доступно)
### Восстановление
```bash
./backup-manager.sh restore
```
#### Далее интерактивно:
1. Выбор источника (локальный / удалённый)
2. Выбор типа:
- конфигурация
- пакеты
## Как работает бэкап пакетов
#### Скрипт:
- определяет пакеты, установленные пользователем
- исключает зависимости
## Зависимости
#### Для NFS
```bash
apk add nfs-utils kmod-fs-nfs kmod-fs-nfs-v3 kmod-fs-nfs-v4
```
#### Для SMB
```bash
apk add cifsmount kmod-fs-cifs
```
## Особенности
- Используется временная директория: `/tmp`
- При восстановлении пакетов:
- временно правится DNS (Cloudflare)
- Для восстановления конфигурации используется:
```bash
sysupgrade -r backup.tar.gz
```
## Очистка
#### Автоматически:
- старые локальные бэкапы
- удалённые файлы старше `HOST_KEEP` дней
## Пример cron
```bash
0 3 * * * /opt/.backup-manager/backup-manager.sh backup
```