我想知道是否有一种简单的方法,即像一个简单的 cron 作业,定期从远程 git 存储库拉到本地只读镜像以进行备份?
理想情况下,它会拉出所有分支和标签,但 master/trunk/head 就足够了。
我只需要一种方法来确保如果主 git 服务器死了,我们有一个可以手动故障转移到的备份位置。
首先创建一个镜像
git clone --mirror git@somewhere.com:repo.git
然后像这样设置一个cron作业:
*/1 * * * * gitbackup cd /backup/repo.git && git fetch -q --tags
这将每分钟备份一次变更集。也许您想减少执行此操作的频率。
正如 Andrew 所指出的,git repo 的每个克隆都是 repo 的完整备份。也就是说,如果您想要将某些内容自动备份到特定机器上,您可以在备份服务器上创建一个裸仓库,将您想要备份的所有分支推入其中,以便最初填充它。然后只需在“主”存储库上设置一个更新后挂钩,以便一旦有提交被推送,它就会继续并将它们推送到备份存储库。不需要 cron 作业或 rsync,它几乎是实时副本。
您可以直接访问服务器吗?那么你可以rsync
只是.git
目录