服务器数据备份方案

服务器数据备份方案

由于服务器买的是一年,而一年后可能有各种不确定性因素,再加上可能的一些误操作,所以之前建立的DevOps环境以及Bitwarden需要做一个备份。正好家里有黑群晖,就用它做数据备份吧

最新备份方案

由于之前一直是用家里的 nas 进行备份,导致不怎么用的 nas 一直开机且无法进入自动休眠模式,心疼,所以打算切换到线上备份方案。原本打算用 api 对接各种云服务,自己 coding,但忽然想起不是有最厉害的开源多端云同步工具rclone么!那就用它做来备份吧。

安装

按照官网教程,在服务器上安装rclone

1
curl https://rclone.org/install.sh | sudo bash

然后配置各种用来备份的远程 config,此处具体可以搜索。

加密

如果希望对某个备份目录进行加密,例如bitwarden,那么可以在 config 添加后继续添加一个 config,type选择crypt,目录填需要备份的config:path,例如OneDrive:/server/backup/path/to/bitwarden,后续的配置就按需填写。之后上传到该目录的文件就是加密的。

添加备份脚本

新建一个backup.sh脚本文件,内容如下

1
2
3
4
5
6
#!/usr/bin/env bash
rclone --checksum sync /path/to/gogs/ GoogleDisk:/server/backup/path/to/gogs --exclude "*.{swp}" --exclude "{log,tmp,sessions}/" ;
rclone --checksum sync /path/to/bitwarden/ GoogleDisk:/server/backup/path/to/bitwarden ;
rclone --checksum sync /path/to/devops/gogs/ OneDrive:/server/backup/path/to/gogs --exclude "*.{swp}" --exclude "{log,tmp,sessions}/" ;
rclone --checksum sync /path/to/bitwarden/ OneDrive:/server/backup/path/to/bitwarden
# 可继续添加任意多个备份服务,前提是你在rclone config里配置好的

添加备份 service

/usr/lib/systemd/system目录下新建backup.service,内容如下

1
2
3
4
5
6
7
8
[Unit]
Description=BackupTimer

[Install]
WantedBy=multi-user.target

[Service]
ExecStart=/bin/bash /path/to/backup.sh

/etc/systemd/system/目录新建backup.timer,内容如下

1
2
3
[Timer]
OnCalendar=*-*-* 04:00:00
Unit=backup.service

启动 service

1
2
systemctl start backup
systemctl enable backup

以下内容为旧版备份方案

Gogs 备份

将备份服务器的 ssh key 添加到 gogs 服务器上,使用rsync进行备份,并添加定时脚本。

1
nohup rsync -e "ssh -p ssh-port" -avL --delete --exclude "gogs/log" --exclude "gogs/data/sessions" [email protected]:/user/devops/gogs /path/to/backup >> gogs.rsync.log 2>&1 &

Drone 备份

无需备份

Docker registry 备份

我是觉得没必要备份,大不了再打包运行一次

Bitwarden 备份

类似 gogs 的备份

1
nohup rsync -e "ssh -p 22" -avL --delete [email protected]:/user/bitwarden/data/ /path/to/backup >> bitwarden.rsync.log 2>&1 &
作者

二锅头

发布于

2020-04-05

更新于

2020-09-21

许可协议

CC BY-NC-SA 4.0

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×