Git for Minecraft服务器备份/版本控制的替代方案

时间:2013-01-11 14:10:36

标签: git bash scripting backup minecraft

目前,我的Minecraft服务器位于CentOS服务器上,使用Git作为版本控制和“灾难管理”的手段。除了两个问题外,这种方法非常有效:

  1. 这很重要。因为服务器有一个中央存储库,主分支(服务器实际运行在其上)和一个测试服务器分支,每个包含所有已提交的更改,使SSD无需填充(使用过去1.5个月大约70GB) )

  2. 这很慢。在对象目录中存储了如此多的数据之后,提交,推送和拉取的速度很慢,因为它尝试压缩/解压缩并解析所有这些数据。

  3. 我正在寻找一种解决方案,让Git对这个应用程序或替代品更有效。以下是我选择使用Git的一些原因:

    • 增量备份 - 每次我想备份时,我都不需要保存整个8GB未压缩/ 2GB压缩服务器!
    • Cherry-pick恢复 - 我需要能够轻松恢复服务器的某些部分(例如特定的插件配置,而无需恢复人们对主要世界的更改)。
    • 能够将项目克隆到家庭计算机以进行异地备份和测试
    • 能够为测试服务器创建一个分支,以便在推出之前尝试不稳定的功能

    当我们过去使用精确的tarballing bash脚本来备份服务器时,我们通常会删除超过2周的备份。使用增量备份时,此期限应为一个月或更长时间。

    如果你不熟悉Minecraft的结构,它有点像这样:

    .
    |-- plugins
        |-- SomePlugin
            |-- config.yml
        |-- SomePlugin.jar
    |-- world
        |-- region
            |-- (binary files of chunks, a 2000x2000 world is often 1GB in size)
        |-- mcmmo_data (third party plugin)
            |-- x coordinate
                |-- y coordinate
                    |-- small flatfile
        |-- level.dat
    |-- stuff.txt
    |-- properties.yml
    |-- server.jar
    

    任何想法?

1 个答案:

答案 0 :(得分:2)

为了存储二进制文件/大文件,您可能会考虑的一个选项是git-annex,它用于管理git中的大对象。它可以让你检查这些巨大的文件,而不会混乱中央git数据库本身。但是,需要重新思考如何弄乱这些文件并让它们随着时间的推移而改变。它确实有一个很好的推/拉/备份组件可能会运行良好,但你会遇到其他需要处理的“新思维方式”。当然,首先在测试系统上试一试。