From 4a1e49e1f0784a441b8c25b993bec9613089f17f Mon Sep 17 00:00:00 2001 From: juewuy Date: Sun, 25 Jan 2026 19:54:39 +0800 Subject: [PATCH] =?UTF-8?q?~=E9=87=8D=E5=86=99=E9=85=8D=E7=BD=AE=E5=A4=87?= =?UTF-8?q?=E4=BB=BD=E8=BF=98=E5=8E=9F=E5=8A=9F=E8=83=BD=EF=BC=8C=E7=8E=B0?= =?UTF-8?q?=E5=9C=A8=E6=94=B9=E4=B8=BA=E5=A4=87=E4=BB=BD=E8=BF=98=E5=8E=9F?= =?UTF-8?q?=E5=AE=8C=E6=95=B4/configs=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/init.sh | 2 +- scripts/menus/2_settings.sh | 22 +++++++++++++--------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/scripts/init.sh b/scripts/init.sh index e8076471..9441ca1f 100644 --- a/scripts/init.sh +++ b/scripts/init.sh @@ -216,7 +216,7 @@ sed -i '/shellclash/d' /etc/group rm -rf /etc/init.d/clash rm -rf "$CRASHDIR"/rules [ "$systype" = "mi_snapshot" -a "$CRASHDIR" != '/data/clash' ] && rm -rf /data/clash -for file in webget.sh misnap_init.sh core.new; do +for file in webget.sh misnap_init.sh core.new configs/ShellCrash.cfg.bak; do rm -f "$CRASHDIR/$file" done #旧版变量改名 diff --git a/scripts/menus/2_settings.sh b/scripts/menus/2_settings.sh index 6ff7e73d..3d5fe085 100644 --- a/scripts/menus/2_settings.sh +++ b/scripts/menus/2_settings.sh @@ -170,6 +170,7 @@ settings() { set_ipv6 ;; a) + BACK_TAR="$CRASHDIR/configs.tar.gz" line_break separator_line "=" content_line "1) $SET_BACKUP" @@ -185,20 +186,23 @@ settings() { 1) line_break separator_line "=" - if cp -f "$CFG_PATH" "$CFG_PATH.bak"; then - content_line "\033[32m$SET_BACKUP_OK\033[0m" + if tar -zcf "$BACK_TAR" -C "$CRASHDIR/configs/" .; then + content_line "\033[32m$SET_BACKUP_OK $BACK_TAR\033[0m" else content_line "\033[31m$SET_BACKUP_FAIL\033[0m" fi + sleep 1 + continue ;; 2) line_break separator_line "=" - if [ -f "$CFG_PATH.bak" ]; then - mv -f "$CFG_PATH" "$CFG_PATH.bak2" - mv -f "$CFG_PATH.bak" "$CFG_PATH" - mv -f "$CFG_PATH.bak2" "$CFG_PATH.bak" - content_line "\033[32m$SET_RESTORE_OK\033[0m" + if [ -f "$BACK_TAR" ]; then + tar -zcf "$TMPDIR/configs.tar.gz" -C "$CRASHDIR/configs/" . + rm -rf "$CRASHDIR/configs/*" + tar -zxf "$BACK_TAR" -C "$CRASHDIR"/configs + mv -f "$TMPDIR/configs.tar.gz" "$BACK_TAR" + content_line "\033[32m$SET_RESTORE_OK $BACK_TAR\033[0m" else content_line "\033[31m$SET_BACKUP_MISS\033[0m" fi @@ -206,7 +210,8 @@ settings() { 3) line_break separator_line "=" - if mv -f "$CFG_PATH" "$CFG_PATH.bak"; then + if tar -zcf "$BACK_TAR" -C "$CRASHDIR/configs/" .; then + rm -rf "$CRASHDIR/configs" . "$CRASHDIR/init.sh" >/dev/null content_lin e"\033[32m$SET_RESET_OK\033[0m" else @@ -219,7 +224,6 @@ settings() { continue ;; esac - content_line "" content_line "\033[33m$SET_NEED_RESTART\033[0m" sleep 1 exit 0