feat: move config to .env
fix: nfs/cifs dependencies
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# "cifs" or "nfs"
|
||||
STORAGE_TYPE="nfs"
|
||||
|
||||
# ip or hostname
|
||||
S_HOST="nfs.lan"
|
||||
|
||||
# /path/to/backup
|
||||
S_PATH="/mnt/media1/backup"
|
||||
|
||||
SMB_USER="guest"
|
||||
SMB_PASS="guest"
|
||||
|
||||
LOCAL_KEEP=10
|
||||
HOST_KEEP=30
|
||||
|
||||
S_MOUNT="/tmp/share"
|
||||
|
||||
C_LIST="
|
||||
/etc/config
|
||||
/etc/xray
|
||||
/etc/unbound
|
||||
/root/.ssh
|
||||
/opt/.xray-config
|
||||
/opt/.backup-manager
|
||||
/etc/nftables.d/10-netmap.nft
|
||||
/etc/nftables.d/15-pbr-mark.nft
|
||||
/etc/hotplug.d/iface/99-xray-restart
|
||||
/etc/zabbix_agentd.conf
|
||||
/etc/dropbear
|
||||
/etc/banner
|
||||
/etc/init.d/xray
|
||||
/etc/crontabs/root
|
||||
"
|
||||
|
||||
C_EXCLUDE="/opt/.backup-manager/local_backups"
|
||||
|
||||
H_REPLACE="wpad dnsmasq"
|
||||
@@ -1 +1,2 @@
|
||||
local_backups/
|
||||
.env
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# OpenWrt Backup Manager
|
||||
# OpenWrt Backup Manager (APK Version)
|
||||
|
||||
Автономный набор скриптов для бэкапа и восстановления конфигурации и пакетов на OpenWrt.
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
- системных конфигов
|
||||
- пользовательских файлов
|
||||
- списка установленных пакетов (apk)
|
||||
- списка установленных пакетов (`apk`)
|
||||
|
||||
#### Восстановление
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
|
||||
#### Поддержка удалённого хранилища
|
||||
|
||||
- NFS
|
||||
- SMB (CIFS)
|
||||
- `NFS`
|
||||
- `CIFS`
|
||||
|
||||
#### Очистка старых бэкапов (локально и удалённо)
|
||||
|
||||
@@ -34,7 +34,13 @@
|
||||
|
||||
## Настройка
|
||||
|
||||
Отредактируйте переменные в backup-manager.sh:
|
||||
Скопируйте пример настроек:
|
||||
|
||||
```bash
|
||||
cp ./.env-example ./.env
|
||||
```
|
||||
|
||||
Отредактируйте переменные в `.env`:
|
||||
|
||||
### Хранилище
|
||||
|
||||
@@ -96,8 +102,8 @@ H_REPLACE="wpad dnsmasq"
|
||||
|
||||
#### Что происходит:
|
||||
|
||||
- создаётся архив .tar.gz
|
||||
- сохраняется список пакетов .lst
|
||||
- создаётся архив `.tar.gz`
|
||||
- сохраняется список пакетов `.lst`
|
||||
- копируется на удалённое хранилище (если доступно)
|
||||
|
||||
### Восстановление
|
||||
@@ -125,21 +131,21 @@ H_REPLACE="wpad dnsmasq"
|
||||
|
||||
#### Для NFS
|
||||
|
||||
```sh
|
||||
opkg install kmod-fs-nfs kmod-fs-nfs-v3 kmod-fs-nfs-v4 nfs-utils
|
||||
```bash
|
||||
apk add nfs-utils kmod-fs-nfs kmod-fs-nfs-v3 kmod-fs-nfs-v4
|
||||
```
|
||||
|
||||
#### Для SMB
|
||||
```sh
|
||||
opkg install kmod-fs-cifs cifs-utils
|
||||
#### Для CIFS
|
||||
```bash
|
||||
apk add cifsmount kmod-fs-cifs
|
||||
```
|
||||
|
||||
## Особенности
|
||||
- Используется временная директория: /tmp
|
||||
- Используется временная директория: `/tmp`
|
||||
- При восстановлении пакетов:
|
||||
- временно правится DNS (Cloudflare)
|
||||
- Для восстановления конфигурации используется:
|
||||
```sh
|
||||
```bash
|
||||
sysupgrade -r backup.tar.gz
|
||||
```
|
||||
|
||||
@@ -147,11 +153,11 @@ sysupgrade -r backup.tar.gz
|
||||
|
||||
#### Автоматически:
|
||||
- старые локальные бэкапы
|
||||
- удалённые файлы старше HOST_KEEP дней
|
||||
- удалённые файлы старше `HOST_KEEP` дней
|
||||
|
||||
|
||||
## Пример cron
|
||||
|
||||
```sh
|
||||
```bash
|
||||
0 3 * * * /opt/.backup-manager/backup-manager.sh backup
|
||||
```
|
||||
+10
-43
@@ -1,50 +1,17 @@
|
||||
#!/bin/sh
|
||||
|
||||
# "smb" or "nfs"
|
||||
STORAGE_TYPE="nfs"
|
||||
DIR=$(cd "$(dirname "$0")" && pwd)
|
||||
ENV_FILE="$DIR/.env"
|
||||
|
||||
# ip or hostname
|
||||
S_HOST="nfs.lan"
|
||||
|
||||
# /path/to/backup
|
||||
S_PATH="/mnt/media1/backup"
|
||||
|
||||
SMB_USER="guest"
|
||||
SMB_PASS="guest"
|
||||
|
||||
LOCAL_KEEP=10
|
||||
HOST_KEEP=30
|
||||
if [ -f "$ENV_FILE" ]; then
|
||||
. "$ENV_FILE"
|
||||
else
|
||||
echo " [!] Error: .env file not found at $ENV_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
HNAME=$(uci get system.@system[0].hostname)
|
||||
DATE=$(date +%Y-%m-%d_%H-%M)
|
||||
|
||||
S_MOUNT="/tmp/share"
|
||||
|
||||
C_LIST="
|
||||
/etc/config
|
||||
/etc/xray
|
||||
/etc/unbound
|
||||
/root/.ssh
|
||||
/opt/.xray-config
|
||||
/opt/.backup-manager
|
||||
/etc/nftables.d/10-netmap.nft
|
||||
/etc/nftables.d/15-pbr-mark.nft
|
||||
/etc/hotplug.d/iface/99-xray-restart
|
||||
/etc/zabbix_agentd.conf
|
||||
/etc/dropbear
|
||||
/etc/banner
|
||||
/etc/init.d/xray
|
||||
/etc/crontabs/root
|
||||
"
|
||||
|
||||
C_EXCLUDE="
|
||||
/opt/.backup-manager/local_backups
|
||||
"
|
||||
|
||||
H_REPLACE="wpad dnsmasq"
|
||||
|
||||
DIR=$(cd "$(dirname "$0")" && pwd)
|
||||
#DIR="/opt/.backup-manager"
|
||||
L_BACKUP_DIR="$DIR/local_backups"
|
||||
SCR_BACKUP="$DIR/backup-configs.sh"
|
||||
SCR_APK="$DIR/backup-apk.sh"
|
||||
@@ -71,8 +38,8 @@ check_network() {
|
||||
check_dependencies() {
|
||||
printf "Checking %s dependencies... " "$STORAGE_TYPE"
|
||||
local pkgs=""
|
||||
[ "$STORAGE_TYPE" = "nfs" ] && pkgs="nfs-utils"
|
||||
[ "$STORAGE_TYPE" = "smb" ] && pkgs="cifsmount"
|
||||
[ "$STORAGE_TYPE" = "nfs" ] && pkgs="nfs-utils kmod-fs-nfs kmod-fs-nfs-v3 kmod-fs-nfs-v4"
|
||||
[ "$STORAGE_TYPE" = "cifs" ] && pkgs="cifsmount kmod-fs-cifs"
|
||||
|
||||
local missing=""
|
||||
for pkg in $pkgs; do
|
||||
|
||||
Reference in New Issue
Block a user