悟空最近新出的IStoreOS备份脚本,很好用

该项目可以轻松备份iStoreOS已安装的软件和配置,当系统恢复出厂设置或重置后,可以一键恢复原来的软件和配置。

特别说明:对于iStoreOS系统而言,docker的数据分区基本上被用户主动迁移到另一个分区,因此无需备份,因为重置系统并不会删除用户自己新建的分区。若用户没有迁移docker的数据分区,那么我们的备份已经包含!

💡 特色功能

  • 💻 支持一键生成备份档案 包括已安装软件及其配置
  • 💻 支持一键恢复备份档案 包括已安装软件及其配置
  • 💻 支持已安装软件及其配置:包含应用商店和第三方安装的ipk/run
  • 🔑 支持同时支持终端命令行方式和iStore应用商店手动安装方式
  • 软路由iStoreOS(x86_64|Arm64) ✅
  • 兼容机型:MT3000/2500/6000 ✅
特别说明:这三款机型的恢复工作是分两步走。
1、执行sh restore.run 后先恢复到iStoreOS风格,执行完毕后会提示用户上传你的备份档案。
2、再次执行sh restore.run 后,提示恢复成功并重启,方可完成✅

🚀 方法一 命令行方式

1. 生成备份/tmp/upload/backup.tar.gz

wget -O backup.run https://raw.githubusercontent.com/wukongdaily/OpenBackRestore/master/backup/backup.run && sh backup.run
备份仓库
wget -O backup.run https://gitee.com/wukongdaily/OpenBackRestore/raw/master/backup/backup.run && sh backup.run
每次备份都是完整的,可以经常备份,比如每月备份一次

2. 恢复备份

使用前提 将备份档案提前上传到 /tmp/upload/ 目录,如图

huifu

确定备份文件已经上传了 再执行如下命令即可恢复,恢复完成后会自动重启

❤️恢复命令如下

wget -O restore.run https://raw.githubusercontent.com/wukongdaily/OpenBackRestore/master/backup/restore.run && sh restore.run
备份仓库
wget -O restore.run https://gitee.com/wukongdaily/OpenBackRestore/raw/master/backup/restore.run && sh restore.run

🚀 方法二 手动方式

1、在release页面下载backup.run或restore.run
https://github.com/wukongdaily/OpenBackRestore/releases/latest
2、打开iStore应用商店,点击手动安装,将run文件拖拽上去即可执行。
image

设置定时备份至指定目录

举例说明 假设要备份到 /mnt/sata2-1目录

  • 下载脚本
wget -O backup.run https://raw.githubusercontent.com/wukongdaily/OpenBackRestore/master/backup/backup.run
  • 或下载脚本(内地使用)
wget -O backup.run https://gitee.com/wukongdaily/OpenBackRestore/raw/master/backup/backup.run
  • 脚本上传至指定文件夹(例:/mnt/sata2-1)
  • SSH登录 转到对应目录下

    cd /mnt/sata2-1
  • 执行备份(备份位置假设为/mnt/sata2-1)
sh backup.run /mnt/sata2-1

设置定期备份(每天的早晨6点备份至/sata2-1/iStoreOS下)

00 06 */1 * *   sh /mnt/sata2-1/backup.run /mnt/sata2-1/iStoreOS

视频介绍

个人修改需求

修改代码增加文件名日期

快速备份使用方法

#!/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"; }

backup() {

        # 获取当前日期并格式化为年月日形式
    local date_str=$(date +'%Y%m%d')
    # 检查是否传入自定义路径
    local backup_path=${1:-/tmp/upload}
    mkdir -p "$backup_path"
    cd "$backup_path" || exit
    # 备份软件源配置
    cp /etc/opkg/distfeeds.conf distfeeds.conf
    # 备份已安装软件列表
    opkg list-installed > packages-list.txt
    tar -czvf overlay_backup.tar.gz /overlay
    # 将所有备份打包成一个文件
    tar -czvf "backup_${date_str}.tar.gz" distfeeds.conf packages-list.txt overlay_backup.tar.gz
    # 清理临时文件
    rm -rf distfeeds.conf packages-list.txt overlay_backup.tar.gz
    green "系统备份文件已保存至 $backup_path/"backup_${date_str}.tar.gz""
    light_magenta "请及时下载保存到电脑 供恢复时使用"
}

backup "$1"
  • 上述代码保存至本地并命名为backup.run
  • 脚本上传至指定文件夹(例:/mnt/sata2-1)
  • SSH登录 转到对应目录下

    cd /mnt/sata2-1
  • 执行备份(备份位置假设为/mnt/sata2-1)
sh backup.run /mnt/sata2-1

设置定期备份(每天的早晨6点备份至/sata2-1/iStoreOS下)

00 06 */1 * *   sh /mnt/sata2-1/backup.run /mnt/sata2-1/iStoreOS

项目地址

最后修改:2024 年 08 月 19 日
如果你喜欢,请随意赞赏