This commit is contained in:
悟空的日常镜像仓库 2024-03-30 10:38:45 +08:00
parent 6bfbb63c52
commit cd8168e689
2 changed files with 50 additions and 36 deletions

View File

@ -1,11 +1,22 @@
#!/bin/sh #!/bin/sh
mkdir -p /tmp/upload/backup red() { echo -e "\033[31m\033[01m[WARNING] $1\033[0m"; }
cd /tmp/upload/backup green() { echo -e "\033[32m\033[01m[INFO] $1\033[0m"; }
cp /etc/opkg/distfeeds.conf distfeeds.conf yellow() { echo -e "\033[33m\033[01m[NOTICE] $1\033[0m"; }
opkg list-installed > packages-list.txt blue() { echo -e "\033[34m\033[01m[MESSAGE] $1\033[0m"; }
tar -czvf overlay_backup.tar.gz /overlay light_magenta() { echo -e "\033[95m\033[01m[NOTICE] $1\033[0m"; }
tar -czvf etc_backup.tar.gz --exclude='/etc/config/wireless' /etc light_yellow() { echo -e "\033[93m\033[01m[NOTICE] $1\033[0m"; }
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 backup() {
echo "系统备份文件已保存至 /tmp/upload/backup/backup.tar.gz" mkdir -p /tmp/upload/backup
echo "请及时下载保存到电脑,恢复时也上传到此目录" 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

View File

@ -1,31 +1,34 @@
#!/bin/sh #!/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/ restore() {
mkdir -p /tmp/upload/backup/
# 检查backup.tar.gz文件是否存在 # 检查backup.tar.gz文件是否存在
if [ -f /tmp/upload/backup.tar.gz ]; then if [ -f /tmp/upload/backup.tar.gz ]; then
tar -xzvf /tmp/upload/backup.tar.gz -C /tmp/upload/backup tar -xzvf /tmp/upload/backup.tar.gz -C /tmp/upload/backup
cd /tmp/upload/backup cd /tmp/upload/backup
# 恢复软件源 # 恢复软件源
cp distfeeds.conf /etc/opkg/distfeeds.conf cp distfeeds.conf /etc/opkg/distfeeds.conf
# 恢复已安装列表 # 恢复已安装列表
opkg update opkg update
cat packages-list.txt | cut -f 1 -d ' ' | xargs opkg install cat packages-list.txt | cut -f 1 -d ' ' | xargs opkg install
# 恢复/overlay 配置 # 恢复/overlay 配置
tar -xzvf overlay_backup.tar.gz -C / tar -xzvf overlay_backup.tar.gz -C /
# 恢复/etc 配置 # 恢复/etc 配置
tar -xzvf etc_backup.tar.gz -C / tar -xzvf etc_backup.tar.gz -C /
green "恢复已完成, 系统正在重启....."
# 恢复已完成,询问用户是否重启
echo "恢复已完成, 是否重启 (y/n)?"
read answer
if [ "$answer" = "y" ]; then
reboot reboot
else else
echo "重启已取消,手动重启以应用所有更改。" # 如果文件不存在,提醒用户并退出脚本
light_magenta "请将恢复文档backup.tar.gz 上传到 /tmp/upload 目录 再重试。"
exit 1
fi fi
else }
# 如果文件不存在,提醒用户并退出脚本
echo "请将恢复文档backup.tar.gz 上传到 /tmp/upload 目录 再重试。" restore
exit 1
fi