OpenBackRestore/1panel/restore.sh
2024-07-09 10:40:14 +08:00

74 lines
2.2 KiB
Bash

#!/bin/sh
# 定义颜色输出函数
red() { echo -e "\033[31m\033[01m[WARNING] $1\033[0m"; }
green() { echo -e "\033[32m\033[01m[INFO] $1\033[0m"; }
yellow() { echo -e "\033[33m\033[01m[NOTICE] $1\033[0m"; }
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"; }
# 检查文件传输是否已安装
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() {
# 提示用户输入要恢复的文件路径
green "恢复的文件路径(默认: /tmp/upload/backup.tar.gz) "
green "因此您可以使用 系统————文件传输 功能将backup.tar.gz上传,然后在此处【回车】即可完成恢复"
read -p "或者您有别的目录,也可以在此处输入要恢复的备份文件路径:" file_path
# 如果用户没有输入,使用默认路径
if [ -z "$file_path" ]; then
file_path="/tmp/upload/backup.tar.gz"
fi
# 检查文件是否存在
if [ -f "$file_path" ]; then
# 恢复overlay
tar -xzvf "$file_path" -C /
green "✅恢复已完成, 系统正在重启....."
reboot
else
red "文件不存在,请确保文件路径正确并重试。"
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
;;
*)
normal_restore
;;
esac
}
restore