diff --git a/backup/backup.sh b/backup/backup.sh index 17a5258..ba308ee 100755 --- a/backup/backup.sh +++ b/backup/backup.sh @@ -1,11 +1,22 @@ #!/bin/sh -mkdir -p /tmp/upload/backup -cd /tmp/upload/backup -cp /etc/opkg/distfeeds.conf distfeeds.conf -opkg list-installed > packages-list.txt -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 -echo "系统备份文件已保存至 /tmp/upload/backup/backup.tar.gz" -echo "请及时下载保存到电脑,恢复时也上传到此目录" \ No newline at end of file +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"; } + +backup() { + mkdir -p /tmp/upload/backup + cd /tmp/upload/backup + cp /etc/opkg/distfeeds.conf distfeeds.conf + opkg list-installed >packages-list.txt + 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目录,再调用恢复脚本即可" +} + +backup diff --git a/backup/restore.sh b/backup/restore.sh index 39ccf63..021956c 100755 --- a/backup/restore.sh +++ b/backup/restore.sh @@ -1,31 +1,34 @@ #!/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"; } -mkdir -p /tmp/upload/backup/ - -# 检查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 - # 恢复软件源 - 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 / - # 恢复/etc 配置 - tar -xzvf etc_backup.tar.gz -C / - - # 恢复已完成,询问用户是否重启 - echo "恢复已完成, 是否重启 (y/n)?" - read answer - if [ "$answer" = "y" ]; then +restore() { + mkdir -p /tmp/upload/backup/ + # 检查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 + # 恢复软件源 + 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 / + # 恢复/etc 配置 + tar -xzvf etc_backup.tar.gz -C / + green "恢复已完成, 系统正在重启....." reboot else - echo "重启已取消,手动重启以应用所有更改。" + # 如果文件不存在,提醒用户并退出脚本 + light_magenta "请将恢复文档backup.tar.gz 上传到 /tmp/upload 目录 再重试。" + exit 1 fi -else - # 如果文件不存在,提醒用户并退出脚本 - echo "请将恢复文档backup.tar.gz 上传到 /tmp/upload 目录 再重试。" - exit 1 -fi +} + +restore