update_0.3-fix #4

Merged
pyrschtjag merged 1 commits from update_0.3-fix into main 2026-02-04 05:03:18 +04:00
+25 -37
View File
@@ -21,24 +21,30 @@ DATE=$(date +%Y-%m-%d_%H-%M)
S_MOUNT="/tmp/share" S_MOUNT="/tmp/share"
C_LIST=" C_LIST="
/etc/config/ /etc/config
/etc/xray/ /etc/xray
/etc/unbound/ /etc/unbound
/root/.ssh/ /root/.ssh
/opt/xray-config/ /opt/.xray-config
/opt/backup-manager/ /opt/.backup-manager
/etc/nftables.d/10-netmap.nft /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=" C_EXCLUDE="
/opt/backup-manager/local_backups /opt/.backup-manager/local_backups
/etc/xray/ipset /etc/xray/ipset
/etc/xray/ipnet /etc/xray/ipnet
" "
H_REPLACE="wpad dnsmasq" H_REPLACE="wpad dnsmasq"
DIR="/opt/backup-manager" DIR=$(cd "$(dirname "$0")" && pwd)
#DIR="/opt/.backup-manager"
L_BACKUP_DIR="$DIR/local_backups" L_BACKUP_DIR="$DIR/local_backups"
SCR_BACKUP="$DIR/backup-configs.sh" SCR_BACKUP="$DIR/backup-configs.sh"
SCR_OPKG="$DIR/backup-opkg.sh" SCR_OPKG="$DIR/backup-opkg.sh"
@@ -55,8 +61,7 @@ check_network() {
printf "Checking network %s... " "$S_HOST" printf "Checking network %s... " "$S_HOST"
if ! ping -c 2 "$S_HOST" >/dev/null 2>&1; then if ! ping -c 2 "$S_HOST" >/dev/null 2>&1; then
echo "FAILED" echo "FAILED"
echo "[!] Error: Remote host $S_HOST is unreachable." echo " [!] Error: Remote host $S_HOST is unreachable."
echo " Check if the NAS is powered on and the IP/Hostname is correct."
return 1 return 1
fi fi
echo "OK" echo "OK"
@@ -97,7 +102,7 @@ mount_share() {
return 0 return 0
else else
echo "FAILED" echo "FAILED"
echo "[!] Error: Failed to mount $STORAGE_TYPE ($FULL_ADDR)" echo " [!] Error: Failed to mount $STORAGE_TYPE ($FULL_ADDR)"
[ -n "$mount_err" ] && echo " System message: $mount_err" [ -n "$mount_err" ] && echo " System message: $mount_err"
return 1 return 1
fi fi
@@ -156,47 +161,30 @@ case "$1" in
echo " Backup remains only in $L_BACKUP_DIR" echo " Backup remains only in $L_BACKUP_DIR"
fi fi
echo "Summary:" echo "Summary:"
echo " [+] Local: $LOCAL_FILE" echo " [+] Local backup: $LOCAL_FILE"
echo " [+] Local packages: $LOCAL_LST"
if [ "$REMOTE_STATUS" = "OK" ]; then 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 else
echo " [!] Remote: Not saved" echo " [!] Remote: Not saved"
fi 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) restore)
echo "1. Local storage ($L_BACKUP_DIR)" echo " [1] Local storage ($L_BACKUP_DIR)"
echo "2. Remote storage ($STORAGE_TYPE)" echo " [2] Remote storage ($STORAGE_TYPE)"
printf "Select source: " printf "Select source: "
read s_choice read s_choice
R_DIR="" R_DIR=""
[ "$s_choice" -eq 1 ] && R_DIR="$L_BACKUP_DIR" [ "$s_choice" -eq 1 ] && R_DIR="$L_BACKUP_DIR"
[ "$s_choice" -eq 2 ] && { check_network && mount_share && R_DIR="$S_MOUNT"; } [ "$s_choice" -eq 2 ] && { check_network && mount_share && R_DIR="$S_MOUNT"; }
if [ -z "$R_DIR" ]; then if [ -z "$R_DIR" ]; then
echo " [!] Source unavailable or cancelled." echo " Source unavailable or cancelled."
exit 1 exit 1
fi fi
echo "1. System configs (.tar.gz)" echo " [1] System configs (.tar.gz)"
echo "2. Package list (.lst)" echo " [2] Package list (.lst)"
printf "Select type: " printf "Select type: "
read t_choice read t_choice
case "$t_choice" in case "$t_choice" in