Merge pull request 'update_0.3-fix' (#4) from update_0.3-fix into main

Reviewed-on: https://gitea.oyacoi.ru/pyrschtjag/backup-manager/pulls/4
This commit was merged in pull request #4.
This commit is contained in:
2026-02-04 05:03:18 +04:00
+27 -39
View File
@@ -21,24 +21,30 @@ 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/config
/etc/xray
/etc/unbound
/root/.ssh
/opt/.xray-config
/opt/.backup-manager
/etc/nftables.d/10-netmap.nft
/etc/hotplug.d/iface/99-xray-restart
/etc/zabbix_agentd.conf
/etc/dropbear
/etc/banner
/etc/init.d/xray
"
C_EXCLUDE="
/opt/backup-manager/local_backups
/opt/.backup-manager/local_backups
/etc/xray/ipset
/etc/xray/ipnet
"
H_REPLACE="wpad dnsmasq"
DIR="/opt/backup-manager"
DIR=$(cd "$(dirname "$0")" && pwd)
#DIR="/opt/.backup-manager"
L_BACKUP_DIR="$DIR/local_backups"
SCR_BACKUP="$DIR/backup-configs.sh"
SCR_OPKG="$DIR/backup-opkg.sh"
@@ -55,8 +61,7 @@ check_network() {
printf "Checking network %s... " "$S_HOST"
if ! ping -c 2 "$S_HOST" >/dev/null 2>&1; then
echo "FAILED"
echo "[!] Error: Remote host $S_HOST is unreachable."
echo " Check if the NAS is powered on and the IP/Hostname is correct."
echo " [!] Error: Remote host $S_HOST is unreachable."
return 1
fi
echo "OK"
@@ -97,8 +102,8 @@ mount_share() {
return 0
else
echo "FAILED"
echo "[!] Error: Failed to mount $STORAGE_TYPE ($FULL_ADDR)"
[ -n "$mount_err" ] && echo " System message: $mount_err"
echo " [!] Error: Failed to mount $STORAGE_TYPE ($FULL_ADDR)"
[ -n "$mount_err" ] && echo " System message: $mount_err"
return 1
fi
}
@@ -153,50 +158,33 @@ case "$1" in
sync
umount "$S_MOUNT"
else
echo " Backup remains only in $L_BACKUP_DIR"
echo " Backup remains only in $L_BACKUP_DIR"
fi
echo "Summary:"
echo " [+] Local: $LOCAL_FILE"
echo " [+] Local backup: $LOCAL_FILE"
echo " [+] Local packages: $LOCAL_LST"
if [ "$REMOTE_STATUS" = "OK" ]; then
echo " [+] Remote: ${S_HOST}:${S_PATH}/$(basename "$LOCAL_FILE")"
echo " [+] Remote backup: ${S_HOST}:${S_PATH}/$(basename "$LOCAL_FILE")"
echo " [+] Remote packages: ${S_HOST}:${S_PATH}/$(basename "$LOCAL_LST")"
else
echo " [!] Remote: Not saved"
fi
;;
restore-pkgs)
check_network && mount_share || { echo "Remote unavailable"; exit 1; }
select_file "$S_MOUNT" ".lst"
[ -n "$SELECTED_PATH" ] && $SCR_OPKG restore "$SELECTED_PATH" "$H_REPLACE"
umount "$S_MOUNT"
;;
restore-sys-net)
check_network && mount_share || { echo "Remote unavailable"; exit 1; }
select_file "$S_MOUNT" ".tar.gz"
[ -n "$SELECTED_PATH" ] && sysupgrade -r "$SELECTED_PATH"
umount "$S_MOUNT"
;;
restore-sys-local)
select_file "$L_BACKUP_DIR" ".tar.gz"
[ -n "$SELECTED_PATH" ] && sysupgrade -r "$SELECTED_PATH"
;;
restore)
echo "1. Local storage ($L_BACKUP_DIR)"
echo "2. Remote storage ($STORAGE_TYPE)"
echo " [1] Local storage ($L_BACKUP_DIR)"
echo " [2] Remote storage ($STORAGE_TYPE)"
printf "Select source: "
read s_choice
R_DIR=""
[ "$s_choice" -eq 1 ] && R_DIR="$L_BACKUP_DIR"
[ "$s_choice" -eq 2 ] && { check_network && mount_share && R_DIR="$S_MOUNT"; }
if [ -z "$R_DIR" ]; then
echo " [!] Source unavailable or cancelled."
echo " Source unavailable or cancelled."
exit 1
fi
echo "1. System configs (.tar.gz)"
echo "2. Package list (.lst)"
echo " [1] System configs (.tar.gz)"
echo " [2] Package list (.lst)"
printf "Select type: "
read t_choice
case "$t_choice" in