Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Minecraft服务器备份/版本控制的Git替代方案_Git_Bash_Scripting_Backup_Minecraft - Fatal编程技术网

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

Minecraft服务器备份/版本控制的Git替代方案,git,bash,scripting,backup,minecraft,Git,Bash,Scripting,Backup,Minecraft,目前,我的Minecraft服务器位于CentOS服务器上,使用Git作为版本控制和“灾难管理”的手段。除了两个问题外,这一点非常有效: 它很大。因为服务器有一个中央存储库、主分支(服务器实际运行在其上)和测试服务器分支,每个分支都包含所有已提交的更改,这将使SSD无休止地充满(使用了过去1.5个月的大约70GB容量) 很慢。在objects目录中存储了如此多的数据之后,提交、推送和拉取都很慢,因为它试图压缩/解压和解析所有这些数据 我正在寻找一种解决方案,使Git在这个应用程序中更加有效,或者

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

  • 它很大。因为服务器有一个中央存储库、主分支(服务器实际运行在其上)和测试服务器分支,每个分支都包含所有已提交的更改,这将使SSD无休止地充满(使用了过去1.5个月的大约70GB容量)

  • 很慢。在objects目录中存储了如此多的数据之后,提交、推送和拉取都很慢,因为它试图压缩/解压和解析所有这些数据

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

    • 增量备份—我不必每次备份时都保存整个8GB未压缩/2GB压缩服务器
    • Cherry pick restoration-我需要能够轻松地恢复服务器的某些部分(例如特定的插件配置,而无需恢复人们对主世界的更改)
    • 能够将项目克隆到家庭计算机上进行异地备份和测试
    • 能够为测试服务器创建分支,以便在推出不稳定的功能之前尝试这些功能
    当我们使用一个精确的tarballingbash脚本来备份服务器时,我们通常会删除超过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
    

    有什么想法吗?

    < P>一个选项,你可以考虑,为了存储二进制/大文件,它是用于管理Git内部的大对象的。它可以让您签入那些巨大的文件,而不会使中央git数据库本身变得混乱。但是,这需要重新思考如何处理这些文件,让它们随着时间的推移而改变。它确实有一个很好的推/拉/备份组件,可能工作得很好,但您会遇到其他需要处理的“新思维方式”。当然,请先在测试系统上试用。

    git服务器的硬件参数……4核AMD推土机(3.6-3.8GHz);8GB内存;128GB固态硬盘;CentOS 6.3 x86_64Git将存储生命周期历史记录,您真的想要吗?如果不是,备份程序会更合适(比如Amanda)。@Hovanesyan我们不一定要最新版本的插件,而是要在我们的服务器上运行的版本。此外,许多插件不支持Maven。我使用
    rdiff backup
    进行类似的操作(这不是Minecraft,但我所做的场景与您所做的非常相似)。这样做的好处是,您可以告诉它删除所有早于某个时间间隔的备份,并尽可能使用增量存储来减少空间使用。