目录
一、概述
安装好seafile后,数据备份也是非常重要的,万一机器无法开机或者磁盘损坏就可以使用备份数据进行恢复。
特别说明
- 脚本一键安装seafile 9推荐阅读:安装 seafile 8.0.11/9.0.16 专业版&企业版 一键安装脚本教程
- 如果需要在宝塔下安装或者手动安装的,请点击这里查看教程。
- 如果是8.0.X老版本,可以升级到 9.0.16版本,———>请点击这里查看教程。
- 如果是7.1.X老版本,需要先升级到 8.0.11版本,请点击这里查看教程。
- 如果是7.0.X老版本,需要先升级到7.1.12版本,seafile 7.0.14专业版升级到7.1.12专业版教程
- onlyoffice 8 最新魔改版更加流畅,并发量大或者经常使用的强烈推荐。请点击前往查看
- 如果需要手动部署微软office Online在线协同编辑的, 请点击这里查看
- 数据量很大,想要外挂数据存储的,可以参照NFS挂载,Seafile 企业版挂载群晖NAS网盘教程
需要备份哪些数据?
一般来说,Seafile 备份分为两部分内容:
-
Seafile 资料库
-
数据库
如果你根据脚本安装的Seafile 服务器,应该有如下目录结构:
#假设安装目录为/opt/seafile
/opt/seafile
--seafile-server-9.x.x # Seafile 安装包解压缩后目录
--seafile-data # Seafile 配置文件和数据(如果你选择默认方式)
--seahub-data # Seahub 数据
--conf # 包含配置文件
二、seafile 数据定期备份教程
知道了需要备份哪些数据,就简单了,主要分为两步:
- 备份数据库;
- 备份存放 Seafile 数据的目录;
备份数据库
建议将数据库备份到另一个单独目录或者磁盘,防止磁盘损坏导致备份文件也一并失效。防止备份文件过大,最好设置保留时效,比如30天循环覆盖。
脚本安装的数据库,数据库名称固定位为 ccnet_db
, seafile_db
和 seahub_db
。
mysqldump
会自动锁表,所以在备份数据库的时候,不需要停掉 Seafile 服务器,直接热备份即可。
#编辑计划任务
crontab -e
#备份数据库
#password 改成自己的密码,默认密码在/opt/seafile/.my.cnf文件中
#/home/backup/database/ 改成自己的备份路径
20 23 * * * /usr/bin/mysqldump -useafile -ppassword --opt ccnet_db > /home/backup/database/ccnet_db.`date +"\%Y-\%m-\%d-\%H-\%M-\%S"`.sql
40 23 * * * /usr/bin/mysqldump -useafile -ppassword --opt seafile_db > /home/backup/database/seafile_db.`date +"\%Y-\%m-\%d-\%H-\%M-\%S"`.sql
50 23 * * * /usr/bin/mysqldump -useafile -ppassword --opt seahub_db > /home/backup/database/seahub_db.`date +"\%Y-\%m-\%d-\%H-\%M-\%S"`.sql
# 清楚过期数据库文件
30 09 * * *
/usr/bin/find /home/backup/database/ -mtime +30 -name "*.sql" -exec rm -rf {} \
Cron 语法格式
Cron 任务的格式如下:
* * * * * <command-to-execute>
- - - - -
| | | | |
| | | | +---- 星期几(0 - 7)(0 或 7 代表星期天)
| | | +------ 月(1 - 12)
| | +-------- 日(1 - 31)
| +---------- 小时(0 - 23)
+------------ 分钟(0 - 59)
示例:
* * * * *
:每分钟执行一次任务0 5 * * *
:每天凌晨 5 点执行任务0 0 1 * *
:每月 1 日的午夜执行任务*/5 * * * *
:每 5 分钟执行一次任务0 0 * * 1
:每周一的午夜执行任务
有宝塔环境
如果有宝塔环境,那更简单了,直接在计划任务里添加数据备份任务,然后设置保留天数或份数即可。
可以设置一个数据全部备份任务,或者分开备份。
备份 Seafile 数据
这里以安装目录/opt/seafile为例,其他目录参照即可。
所有的数据文件都存储在 /opt/seafile 目录, 备份整个目录即可。可以用 rsync 做定期增量备份。
#将数据备份到 /home/backup/seafile
下。 rsync -az /opt/seafile /home/backup
加到计划任务crontab示意
10 02 * * 01 /usr/bin/rsync -az /opt/seafile /home/backup &>/home/rsync.`date +"\%Y-\%m-\%d-\%H-\%M-\%S"`.log
三、恢复还原数据
以下都在备机上面操作,备机安装好seafile。
恢复数据库
#假设数据备份文件分别为ccnet_db.sql、seafile_db.sql、seahub_db.sql
mysql -useafile -ppassword ccnet_db < ccnet_db.sql
mysql -useafile -ppassword seafile_db < seafile_db.sql
mysql -useafile -ppassword seahub_db < seahub_db.sql
恢复 Seafile 资料库数据
之前seafile目录备份到/home/backup/seafile里
-
移动
/home/backup/seafile
到opt目录即可。
mv /home/backup/seafile /opt/
恢复测试
最后启动备机上面seafile服务,测试数据是否已经恢复。
buntu18.0.4及以上/Deepin 10
#关闭seafile
service seafile-server stop
#启动seafile
service seafile-server start
Centos8.X
#关闭seafile
systemctl stop seafile
systemctl stop seahub
#启动seafile
systemctl start seafile
systemctl start seahub
更多:
- 脚本一键安装seafile 9专业版&企业版推荐阅读:
- onlyoffice 8 最新魔改版更加流畅,并发量大或者经常使用的强烈推荐。
- 数据量很大,想要外挂数据存储的,可以参照NFS挂载
技术支持
需要安装,支持可以网站底部联系我