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