From 9b81be6831060abad053247df9ad4718f7b04f1a Mon Sep 17 00:00:00 2001 From: wukongdaily <2666180@gmail.com> Date: Sat, 30 Mar 2024 21:51:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=BA=9B=E7=9B=AE?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backup/backup.run | 23 ++++++++++++++++------- backup/restore.run | 19 ++++++++++--------- 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/backup/backup.run b/backup/backup.run index ba308ee..39058cf 100755 --- a/backup/backup.run +++ b/backup/backup.run @@ -7,16 +7,25 @@ light_magenta() { echo -e "\033[95m\033[01m[NOTICE] $1\033[0m"; } light_yellow() { echo -e "\033[93m\033[01m[NOTICE] $1\033[0m"; } backup() { - mkdir -p /tmp/upload/backup - cd /tmp/upload/backup + mkdir -p /tmp/upload + cd /tmp/upload + # 备份软件源配置 cp /etc/opkg/distfeeds.conf distfeeds.conf - opkg list-installed >packages-list.txt + # 备份已安装软件列表 + opkg list-installed > packages-list.txt + # 分别备份overlay、etc目录、root目录和usr/local目录 tar -czvf overlay_backup.tar.gz /overlay tar -czvf etc_backup.tar.gz --exclude='/etc/config/wireless' /etc - tar -czvf backup.tar.gz distfeeds.conf packages-list.txt overlay_backup.tar.gz etc_backup.tar.gz - rm -rf distfeeds.conf packages-list.txt overlay_backup.tar.gz etc_backup.tar.gz - green "系统备份文件已保存至 /tmp/upload/backup/backup.tar.gz" - light_yellow "请及时下载保存到电脑,恢复时使用 系统——文件传输 上传至/tmp/upload目录,再调用恢复脚本即可" + tar -czvf root_backup.tar.gz /root + tar -czvf usr_local_backup.tar.gz /usr/local + # 将所有备份打包成一个文件 + tar -czvf backup.tar.gz distfeeds.conf packages-list.txt overlay_backup.tar.gz etc_backup.tar.gz root_backup.tar.gz usr_local_backup.tar.gz + # 清理临时文件 + rm -rf distfeeds.conf packages-list.txt overlay_backup.tar.gz etc_backup.tar.gz root_backup.tar.gz usr_local_backup.tar.gz + green "系统备份文件已保存至 /tmp/upload/backup.tar.gz" + light_magenta "请及时下载保存到电脑,恢复时使用系统——文件传输上传至/tmp/upload目录,再调用恢复脚本即可" } + + backup diff --git a/backup/restore.run b/backup/restore.run index 021956c..30302ae 100755 --- a/backup/restore.run +++ b/backup/restore.run @@ -8,27 +8,28 @@ 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() { - mkdir -p /tmp/upload/backup/ + mkdir -p /tmp/upload # 检查backup.tar.gz文件是否存在 if [ -f /tmp/upload/backup.tar.gz ]; then - tar -xzvf /tmp/upload/backup.tar.gz -C /tmp/upload/backup - cd /tmp/upload/backup - # 恢复软件源 + tar -xzvf /tmp/upload/backup.tar.gz -C /tmp/upload + cd /tmp/upload + # 恢复软件源配置 cp distfeeds.conf /etc/opkg/distfeeds.conf - # 恢复已安装列表 + # 恢复已安装软件列表 opkg update cat packages-list.txt | cut -f 1 -d ' ' | xargs opkg install - # 恢复/overlay 配置 + # 分别恢复overlay、etc目录、root目录和usr/local目录 tar -xzvf overlay_backup.tar.gz -C / - # 恢复/etc 配置 tar -xzvf etc_backup.tar.gz -C / + tar -xzvf root_backup.tar.gz -C / + tar -xzvf usr_local_backup.tar.gz -C / green "恢复已完成, 系统正在重启....." reboot else - # 如果文件不存在,提醒用户并退出脚本 - light_magenta "请将恢复文档backup.tar.gz 上传到 /tmp/upload 目录 再重试。" + red "请将恢复文档backup.tar.gz上传到/tmp/upload目录再重试。" exit 1 fi } + restore