备份完整的 Git 服务器

备份完整的 Git 服务器

我有一个CentOs 7.1和一个Git 服务器安装在其上。

Git 服务器配置有SSH 密钥因此用户需要密码和一个私钥连接到服务器。

目前共有 7 个存储库,用户经常对其进行提交。

Git 服务器的管理由以下工具完成gitolite 管理员

我想创建一个备份Git 服务器包括每个存储库和每个单独的配置设置。

我知道计划任务可以用于此,但我不确定是否最好克隆回购协议或压缩/tar将所有与 git 相关的文件夹合并到一个文件中。

如何正确地做到这一点?

答案1

更好是主观的,取决于您的环境和目标。使用 git 或 tar/gzip 将生成备份。

使用 tar/gzip 或其他本机备份工具时,使用该gitolite writable命令禁用对所有存储库或特定存储库的推送。这将阻止在备份期间写入存储库。如果您跳过该步骤并且有人在备份期间写入存储库,您的备份将被损坏。

运行gitolite writable -h以了解详细用法。有关更多信息,请参阅 gitolite 文档http://gitolite.com/gitolite/gitolite.html

答案2

您可以使用 rsync 复制整个服务器,然后将其打包并存储。我的建议是将其存储在外部服务器上(例如 BackBlaze B2)。

这里有一些 rsync 示例:

通过 SSH 进行 Rsync:

rsync -avzhe ssh [email protected]:/root/install.log /tmp/

如果您想要进行试运行,请添加--dry-run。如果您想要复制服务器,则需要在目标系统上删除已删除的文件,请-delete为此添加。

更多 rsync 示例:http://www.tecmint.com/rsync-local-remote-file-synchronization-commands/

相关内容