From 58b9389fa96a947f178ca8f8caeef727fcf631ae Mon Sep 17 00:00:00 2001 From: wukongdaily <2666180@gmail.com> Date: Mon, 1 Apr 2024 13:48:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=BC=E5=AE=B9MT2500/MT3000/MT6000=E7=9A=84?= =?UTF-8?q?=E5=A4=87=E4=BB=BD=E4=B8=8E=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backup/restore.run | 50 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 7 deletions(-) diff --git a/backup/restore.run b/backup/restore.run index 449ccdc..4024fbe 100755 --- a/backup/restore.run +++ b/backup/restore.run @@ -7,17 +7,38 @@ blue() { echo -e "\033[34m\033[01m[MESSAGE] $1\033[0m"; } light_magenta() { echo -e "\033[95m\033[01m[NOTICE] $1\033[0m"; } light_yellow() { echo -e "\033[93m\033[01m[NOTICE] $1\033[0m"; } -restore() { +# 检查文件传输是否已安装 +check_istoreos_style_installed() { + # 检查luci-app-filetransfer的一些关键文件是否存在 + CHECK_FILES="/usr/lib/lua/luci/controller/filetransfer.lua +/usr/lib/lua/luci/view/filetransfer +/usr/lib/lua/luci/model/cbi/filetransfer" + + # 设置一个标记,用来表示文件是否找到 + FOUND=0 + + for FILE in $CHECK_FILES; do + if [ -e "$FILE" ]; then + FOUND=1 + break + fi + done + + if [ $FOUND -eq 1 ]; then + echo "luci-app-filetransfer is installed." + else + # 先恢复到一键iStoreOS风格化 + wget -O /tmp/restore.sh https://gitee.com/wukongdaily/gl_onescript/raw/master/restore.sh && sh /tmp/restore.sh + fi +} + +# 恢复标准的iStoreOS +normal_restore() { mkdir -p /tmp/upload/restore # 检查backup.tar.gz文件是否存在 if [ -f /tmp/upload/backup.tar.gz ]; then tar -xzvf /tmp/upload/backup.tar.gz -C /tmp/upload/restore cd /tmp/upload/restore - # 恢复软件源配置 - cp distfeeds.conf /etc/opkg/distfeeds.conf - # 恢复已安装软件列表 - opkg update - cat packages-list.txt | cut -f 1 -d ' ' | xargs opkg install # 恢复overlay tar -xzvf overlay_backup.tar.gz -C / green "恢复已完成, 系统正在重启....." @@ -26,7 +47,22 @@ restore() { red "请将恢复文档backup.tar.gz上传到/tmp/upload目录再重试。" exit 1 fi + } +restore() { + model_info=$(cat /tmp/sysinfo/model) + green "型号:$model_info" + case "$model_info" in + *2500* | *3000* | *6000*) + check_istoreos_style_installed + normal_restore + ;; + *) + echo "Router name does not contain '3000', '6000', or '2500'." + normal_restore + ;; + esac +} -restore +restore \ No newline at end of file