![备份完整的 Git 服务器](https://linux22.com/image/673552/%E5%A4%87%E4%BB%BD%E5%AE%8C%E6%95%B4%E7%9A%84%20Git%20%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我有一个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/