服务器数据如何方便地备份到网盘

192次阅读
没有评论

共计 1013 个字符,预计需要花费 3 分钟才能阅读完成。

由于之前写的搭建密码管理器 Vaultwarden,论坛有人提到来个备份教程,于是便有了这篇文章。

我自己的方案是,数据都存放在一个目录下,比如 /home/docker 目录。那么备份数据的时候只需要加密压缩这个目录,然后上传到网盘即可。

这里需要用到 rclone 进行网盘挂载,如果不了解这个的话可以看看 Docker 安装 rclone 挂载 Onedrive 到本地。rclone 支持的网盘非常多,并且还支持 webdav。

因为本人 Onedrive 容量较小,所以用的阿里云盘,然而阿里云盘不支持直接挂载。因此,还需要借助 alist 添加阿里云盘后进行 webdav 挂载。

挂载后,假设需要备份的目录为/home/docker,Onedrive 挂载的目录为 /rclone/onedrive,准备一个存放备份的目录 /rclone/onedrive/backup。那么可以使用如下脚本进行备份:

#!/bin/bash

echo "备份开始执行于:$(date)"

# 使用变量保存日期
date=$(date +%Y%m%d-%H%M)
tmp_dir="/usr/local/tmp/$date"
docker_dir="/home/docker"
backup_dir="/rclone/onedrive/backup"
password="password"

# 创建目录
mkdir -p "$backup_dir" "$tmp_dir" || { echo "创建目录失败"; exit 1; }

# 复制文件
cp -r "$docker_dir" "$tmp_dir" || { echo "复制文件失败"; exit 1; }

# 压缩并设置密码
cd /usr/local/tmp || { echo "无法进入临时目录"; exit 1; }

zip -rP "$password" "${date}.zip" "$date" || { echo "压缩失败"; exit 1; }
cp "${date}.zip" "$backup_dir" || { echo "复制压缩文件失败"; exit 1; }

# 清理备份
ls -t "$backup_dir" | awk 'NR>30' | xargs -I {} rm -rf "$backup_dir/{}" || { echo "清理旧备份失败"; exit 1; }

echo "备份完成于:$(date)"

本来是自己写的脚本,让 chatgpt 优化一下,它就改成这样了。这个脚本将 /home/docker 目录加密压缩,然后上传到网盘,并且只保留最近 30 个备份。

AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
 
阿蛮君
版权声明:本站原创文章,由 阿蛮君 2024-09-12发表,共计1013字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Copyright © 2022-2024 阿蛮君博客 湘ICP备2023001393号
本网站由 亿信互联 提供云计算服务 | 蓝易云CDN 提供安全防护和加速服务
Powered by Wordpress  Theme by Puock