0

备份功能的建议

发表于:2024-11-9 23:07:04 需求池 94

用了一下备份功能,备份我的docker 零碎文件上传巨慢。

希望能增加压缩后上传功能 。并且支持用户选择备份多少份

比如我的docker配置我希望压缩备份 三个月 大概90份

image.png最后附上自己在用的webdav备份代码

!/bin/bash

定义WebDAV相关变量

WEBDAV_URL="https://xxxx.xxxx.xxxx/dav/阿里云盘/服务器备份/华为云新加坡/" WEBDAV_USER="root" WEBDAV_PASSWORD="xxxxx"

动态生成备份文件名,包含当前日期和时间

BACKUPNAME="root-$(date +%Y-%m-%d%H-%M-%S).tar.gz" BACKUP_PATH="/tmp/$BACKUP_NAME"

压缩指定目录

tar -czf "$BACKUP_PATH" "/root"

上传到WebDAV的对应目录

curl -T "$BACKUP_PATH" -u $WEBDAV_USER:$WEBDAV_PASSWORD ${WEBDAV_URL}"root/"

清理本地备份文件

rm "$BACKUP_PATH"

删除超过10个的旧备份

files_to_delete=$(curl -s -X PROPFIND -u "$WEBDAV_USER:$WEBDAV_PASSWORD" ${WEBDAVURL}"root/" | grep -oP "(?[=d:href<)[^<]+" | sed 's/%/\x/g' | xargs -I{} basename {} | grep -P '^root-\d{4}-\d{2}-\d{2}[0-9]{2}-[0-9]{2}-[0-9]{2}.tar.gz$' | sort -r | tail -n +31)](=%3CD:href)

if [ ! -z "$files_to_delete" ]; then echo "$files_to_delete" | while read file_to_delete; do if [ ! -z "$file_to_delete" ]; then echo "Deleting: ${file_to_delete}" curl -s -X DELETE -u "$WEBDAV_USER:$WEBDAV_PASSWORD" ${WEBDAV_URL}"root/${file_to_delete}" fi done fi

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

发表回复

评论列表(2)

收到,这个需求我们评估一下 感谢
2024-11-11 12:09:54 回复
主要是docker这类东西 备份用增量的话 损坏就全坏了 根本没得跑 类似于db这种数据库,如果已经出现错误,并且上传到备份了。就裂开了  详情 回复
2024-11-12 18:16
主要是docker这类东西 备份用增量的话 损坏就全坏了 根本没得跑
类似于db这种数据库,如果已经出现错误,并且上传到备份了。就裂开了
2024-11-12 18:16:20 回复
难辞x

TA还没有介绍自己~

3

主题

7

回帖

16

积分

江湖小虾

积分
16
话题