刚刚试着完成了Mastodon的备份 :neofinder:
参考了蜗牛哥的 https://www.eallion.com/mastodon-backup ,以及GPT的指示
了解了备份的基本流程,接下来就是变成脚本然后设置为定时任务
先配置rclone链接到Backblaze b2
rclone config
图方便就把Application Keys删了,重新生成了Master Application Key
Rclone除了协议、account、key意外都不需要什么额外的配置
~/.config/rclone/rclone.conf
[b2]
type = b2
account = $keyID$
key = $applicationKey$
rclone lsd b2:
查看buckt确认无误
基本备份流程:
备份 一些目录/文件 + 一个数据库 → 打包成带时间戳的 tar.gz → 用 rclone 传到多个云 → 清理本地
我需要备份的文件有:
compose.yaml
Dockerfile
.env.production
docker-compose.override.yml
mastodon.dump(数据库)
docker exec mastodon_dev_db \
pg_dump -Fc -U postgres postgres > mastodon.dump
我需要备份的目录有:
/home/jay/docker/social/mastodon/main/overrides
不需要备份的目录:
/home/jay/docker/social/mastodon/main/public(我的文件都在R2,本地无文件)
/home/jay/docker/social/mastodon/main/elasticsearch(索引可以重建)
/home/jay/docker/social/mastodon/main/redis (不是权威数据源)
接下来上传到backblaze
ts=$(date +"%Y%m%d-%H%M%S") (打上时间戳)
tar -czf mastodon-dev-backup-${ts}.tar.gz \
compose.yaml \
Dockerfile \
.env.production \
docker-compose.override.yml \
mastodon.dump \
overrides
(打包为tar.gz)
rclone copy mastodon-dev-backup-${ts}.tar.gz b2:Hostdzire-SFO-Backup/ (上传到Backblaz的Hostdzire-SFO-Backup桶下)
验证上传:
rclone ls b2:Hostdzire-SFO-Backup | tail(输出文件)
删掉临时文件和本地备份:
rm -f mastodon.dump
rm -f mastodon-dev-backup-${ts}.tar.gz
#b2 #backblaze #rclone #backup #备份 #docker #tar #打包 #mastodon