我想知道是否有一种简单的方法,比如简单的cron作业,定期从远程git存储库拉到本地只读镜像用于备份目的?
理想情况下,它会拉动所有分支和标签,但主/主干/头部就足够了。
我只需要一种方法来确保如果主git服务器死机,我们有一个备份位置,我们可以手动故障转移到。
答案 0 :(得分:59)
首先使用
创建一个镜像git clone --mirror git@somewhere.com:repo.git
然后设置这样的cron作业:
*/1 * * * * gitbackup cd /backup/repo.git && git fetch -q --tags
这将每分钟备份变更集。也许你想要不那么频繁地做这件事。
答案 1 :(得分:9)
正如Andrew所说,git repo的每个克隆都是repo的完整备份。也就是说,如果您想要将某些内容自动备份到特定计算机上,您可以在备份服务器上创建一个裸仓库,并将其与所有要备份的分支一起推入其中,以便最初填充它。然后只需在“主”仓库上设置一个更新后挂钩,这样只要有提交的提交,它就会继续并将它们推送到备份仓库。不需要cron作业或rsync,它几乎是一个真实的副本。
答案 2 :(得分:-3)
您是否可以直接访问服务器?然后你可以rsync
.git
目录