Seafile备份与恢复

摘要:给公司搭的Seafile开始正常使用了,必须要做好备份,以防数据丢失

首先要参考官方文档

下面结合实际情况,将我的操作过程记录下来。(我是使用docker-compose方式部署的社区版)

源服务器部署

参考官方文档

下载并修改 docker-compose.yml

注意其中的两个挂载目录,我是挂载到了:

1
2
/opt/seafile-mysql/db:/var/lib/mysql
/opt/seafile-data:/shared

然后启动

1
docker-compose up -d

使用async命令进行备份

rsync用法参考 rsync -hman rsynchttps://www.baidu.com/s?wd=rsync

编写脚本/opt/backup.sh

1
2
3
4
5
6
#!/usr/bin/env bash
rsync -az --delete --log-file=/opt/backup.log \
/opt/seafile-docker-compose \
/opt/seafile-mysql \
/opt/seafile-data \
192.168.1.8:/opt/

编写脚本/opt/backup2.sh

1
2
3
4
5
6
#!/usr/bin/env bash
rsync -az --delete --log-file=/opt/backup2.log \
/opt/seafile-docker-compose \
/opt/seafile-mysql \
/opt/seafile-data \
192.168.1.9:/opt/

添加到系统定时任务中

1
crontab -e
1
2
3
4
5
6
# 每5分钟执行一次备份
0,10,20,30,40,50 * * * * /opt/backup.sh
5,15,25,35,45,55 * * * * /opt/backup.sh

# 每10分钟执行一次备份
0,10,20,30,40,50 * * * * /opt/backup2.sh
1
:wq

从备份恢复

先把系统的定时任务关闭,模拟原服务器已经宕机。

到备份服务器上,安装docker-compose,修改docker-compose.yaml文件,主要是修改挂载的两个目录:

1
2
/opt/seafile-mysql/db:/var/lib/mysql
/opt/seafile-data:/shared

然后直接启动即可

1
docker-compose up -d

注意事项

  1. 如果之前在原服务器上进入docker容器中做了修改,而修改的文件又没有挂载到外面,那么从备份恢复的时候要重新进入容器再次进行相应的修改。