备份和恢复 Gitea 服务器
在这些困难时期,任何事情都可能发生。
目录
需要备份以下内容:1) 数据库,2) 文件存储,3) 其他一些 Gitea 文件。现在开始。
在测试 Gitea这篇文章中,我们安装了 Gitea 服务器。
何时
现在,作为对可能发生糟糕事情的预防措施,需要演练备份和恢复流程。
宁可备而无患,不可患而无备。
何处
Gitea 服务器的数据由三个部分组成:
- 代码
- 文件存储
- 数据库
在我们的测试环境中,它们总共占用大约 700MB:
按照他们的建议,需要停止所有服务并一次性备份所有内容。
恢复时也应一次性完成。
如何 - 备份
cd ~/gitea-srv-local
# 备份数据库
sudo docker exec -t gitea-srv-local_db_1 bash -c 'pg_dump gitea -U gitea --file=/var/lib/postgresql/backups/gitea-db-$(date +%Y-%m-%d).sql'
# 关闭 Gitea
sudo docker-compose down
# 检查备份文件夹
sudo ls postgres-backups
# 创建备份目录
mkdir gitea-backups
# 备份 Gitea 文件夹
sudo tar -zcvf gitea-backups/gitea-gitea-$(date +%Y-%m-%d).tgz gitea/gitea
# 备份 repos 文件夹
sudo tar -zcvf gitea-backups/gitea-git-$(date +%Y-%m-%d).tgz gitea/git
# 启动服务
sudo docker-compose up -d
最后一步是登录到另一台服务器,将备份文件夹拉取过去,或者进行更复杂的文件操作:
scp -r uname@gitea-srv-ip-addr:/home/uname/gitea-srv-local/gitea-backups ~/gitea-backups
scp -r uname@gitea-srv-ip-addr:/home/uname/gitea-srv-local/postgres-backups ~/postgres-backups
如何 - 恢复
实际上,这比上面提到的要复杂一些,特别是权限和钩子部分,但基本思路是一样的。
不过!请务必查看原始文档:https://docs.gitea.com/administration/backup-and-restore
# 首先安装
# 然后关闭服务
sudo docker-compose down
# 恢复文件
tar -zxvf gitea-git-___.tgz gitea/git
tar -zxvf gitea-gitea-___.tgz gitea/gitea
# 启动服务
sudo docker-compose up -d
# 这里进行一些 psql 或 pg_restore 操作
sudo docker exec -t gitea-srv-local_db_1 bash -c 'psql gitea -U gitea --file=/var/lib/postgresql/backups/gitea-db-$(date +%Y-%m-%d).sql'
然后前往 UI 界面检查是否正常。