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:
+27
-39
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user