手机从桌上滑下去的那一秒,你脑子里闪过的不是手机多少钱,而是“存档还在不在”。屏幕没碎,但服务器起不来了,world 目录报 Level is corrupt——这时候能救你的,只有一份几天前、并且真的能打开的备份。
备份这件事最容易犯的错,不是“没备份”,而是“以为备份了”:文件在同一个手机里、备份时服务器还在写盘、从来没试过恢复。下面从“备什么”讲到“怎么演练”,目标只有一个:出事那天,你能真的把服开回来。
备份解决“能回去”,演练解决“回去真的能开”。
备份可以不停服,还原必须先停服,最多等 10 秒。
世界还原和整服还原都没有二次确认,点一下就覆盖。
自动备份默认关闭,保留 10 份,而且只清自动来源的旧包。
还原前第一件事:先给当前状态手动打一份新备份。
备份不是复制一份 world#
很多人说的“备份”,只是把 world 文件夹复制到另一个目录。这能救回地图,但救不回一个能开的服。
| 要备份的东西 | 为什么 | 少了会怎样 |
|---|---|---|
| 世界目录(主世界 + 下界 + 末地) | 建筑、地形、玩家位置、进度 | 地图回到过去,建筑全没 |
server.properties | 端口、人数、正版验证、白名单开关 | 恢复后配置全变默认,朋友进不来 |
ops.json、whitelist.json、banned-players.json | 管理员、白名单、封禁名单 | 管理员全没了,捣乱的人能回来 |
plugins/ 或 mods/ 及各自配置 | 玩法、权限、经济、领地数据 | 插件没了,玩家数据还在但读不出来 |
| 核心 jar 与版本记录 | 世界有数据版本,换核心或降级可能读不了 | 换了核心版本,世界可能打不开 |
Minexa 的「备份世界」默认打包 world、world_nether、world_the_end;「备份整个服务器」打包整个服务端目录,但排除 logs/、server.lock、session.lock。日常回退地图用前者,升级、换核心、换手机用后者。
世界数据有版本格式,升级容易降级难。除了文件,还要记下:Minecraft 版本、核心类型与版本、Java 来源与版本、插件/模组清单。没有这四样,备份能打开也可能读不了。记录可以写成 版本记录.txt 放在服务端目录里,跟整服备份一起打包。
3-2-1:在手机上怎么落地#
3-2-1 是一条通用备份原则:3 份数据、2 种介质、1 份异地。翻译成手机开服的场景:
| 数字 | 含义 | 具体做法 |
|---|---|---|
| 3 份 | 除了正在用的,至少还有 2 份备份 | 应用备份目录 1 份 + 电脑 1 份 + 网盘 1 份 |
| 2 种介质 | 不要全放在同一块存储上 | 手机内置存储 + 电脑硬盘/移动硬盘/SD 卡 |
| 1 份异地 | 防火灾、丢失、整机报废 | 网盘或另一台设备,放在另一个地方 |
只把备份放在 /storage/emulated/0/世界与服务器的备份/,是“3 份”里的 1 份:手机丢了,备份和服务器一起消失。正确的最低配置是:
每天/每次改动前,应用打一份自动或手动备份;
每周把最新的整服备份导出到电脑;
每月把一份整服备份传到网盘。
把整个服务端目录放进云盘的自动同步文件夹,看起来很方便,实际有两个问题:服务端运行时文件一直在变,同步上去的可能是撕裂的存档;误删一个世界,云盘会“忠实地”把删除也同步掉。备份要传打包好的 zip 快照,并且保留多个时间点。
多久备份一次:按人数和改动频率#
没有一个适合所有人的间隔,但可以按“丢一天能不能接受”来定:
| 场景 | 建议频率 | 保留 | 说明 |
|---|---|---|---|
| 2~5 人,偶尔玩 | 每天 1 次,或每次开服前 | 7~10 份 | 手动备份为主,改动前必打 |
| 10 人左右,常开 | 每 6 小时 | 10~20 份 | 用自动备份,减少人工遗漏 |
| 模组/插件服,经常改 | 每 1~2 小时 | 10~20 份 | 配置和模组变动频繁,回退点要多 |
| 任何升级/降级/换核心前 | 立刻一份整服 | 一直留到验证通过 | 这一份不要被自动清理覆盖 |
Minexa 的自动备份默认是关闭的,间隔为 0,需要你手动设。可设 30 / 60 / 180 分钟,也可以自定义 5–10080 分钟;自动保留数量默认 10 份,范围 1–100。它只在服务端运行时由前台服务每 60 秒检查触发,服务端停着就不会自动备份。
两个容易忽略的细节:
自动备份只清理“自动”来源的旧包,手动备份永远不会被自动删除。所以重要节点请手动打一份,别只依赖轮换。
备份文件占空间。世界 200 MB 保留 10 份就是 2 GB。手机剩余空间建议始终留出 10%~20%,空间不足时最先出问题的往往是世界保存。
Minexa 的备份:备份不停服,还原才停服#
先把两个动作分开:
| 动作 | 会不会停服 | 什么时候用 |
|---|---|---|
| 备份世界 / 备份整服 | 不停服 | 日常快照、改动前留后路 |
| 还原世界 / 还原整服 | 会停服(自动 stop,最多等 10 秒,超时强停) | 地图坏了、升级失败、换手机 |
“备份不停服”是设计如此,但它换来的是“当时磁盘上的文件”,不保证是同一瞬间的状态。服务端在跑、玩家在跑图、区块在往磁盘写,打出来的包可能一半新一半旧。日常随手备份没问题;升级、装模组、批量改配置前的那一份,最好先停服再打。
在应用里,备份入口是「更多 → 世界与备份」,备份目录是:
/storage/emulated/0/世界与服务器的备份/Android 11 及以上需要「所有文件访问」权限,未授权时备份按钮是禁用的。备份文件在公共目录,卸载应用不会丢;但手机丢了,它也会一起丢,所以还是要往外拷。
想让备份自动跑,可以设自动备份,也可以用「自动化」建定时任务。自动化的粒度、Cron 写法和限制见 自动化任务:定时开服、备份与公告;备份页每个按钮的细节见 备份、还原与世界管理。
还原:会停服,而且没有二次确认#
这是整套流程里最需要小心的一步。
世界还原和整服还原都没有二次确认。世界还原会直接用备份覆盖当前世界;整服还原只有在检测到同名服务器目录时才会弹一次“覆盖还原”,其他情况也是点下即执行。还原会用备份内容覆盖当前数据,整服还原成功后旧目录会被直接删除,连 .bak 都不留。
所以还原前必须做三件事:
先给当前状态打一份新备份,并在列表里确认它真的出现了。不要用“我刚才好像点过备份”来判断。
把这份新备份导出到电脑或网盘。还原会停服并覆盖目录,万一中途出问题,手边有一份异地的更稳。
确认你要还原的是哪一份:看文件名里的时间、类型、核心字段。文件名里的核心类型用于还原时识别核心,改掉核心字段,还原出来就是「未知」。
还原过程中应用会先校验整包,再停服。停服是自动的:发 stop,最多等 10 秒,还在跑就强制停止。强制停止可能丢未保存的数据,但还原本来就要覆盖,这一点无法避免。还原失败时,世界还原会尽量把旧目录改回原名;整服还原走的是“暂存目录 + 换名”的流程,失败会回滚,但成功后旧目录不留。
恢复演练:抽一份,真的开一次#
备份不做演练,等于没有备份。你不需要每个月都演练,但至少要在“第一次配好自动备份”和“换手机”这两个节点各做一次。
挑一份最近的整服备份,记下文件名和时间。优先选停服状态下打的包。
确认它不在主服目录里。演练要用单独的服务器目录,绝不能直接在主服上点还原。
导入成一台测试服:下载页 → 导入服务器 → 选这个 zip。应用会把它解成一个新的服务器目录;识别不出核心时选「未知」,进服后再改。
装同样的 Java,启动测试服,等终端出现
Done。起不来就说明这份备份有问题,回去检查文件大小和完整性。进去核对:出生点建筑、几个常去坐标、箱子里的东西、下界和末地能不能进、OP 和白名单还在不在、插件/模组有没有加载报错。
删掉测试服。想留档就保留那份备份 zip,不必留着一台测试服占空间。演练记录写一句“某年某月某日,某份备份启动成功”,下次出事先看这条记录。
如果整服备份太大,导入可能受应用的大小限制(压缩包体积上限 32 GiB、条目上限 40 万)。这种情况下,至少把「备份世界」的 zip 导入一台测试服,确认地图能读、坐标对得上;配置和插件则单独检查。
升级、装模组、改配置前的“四步备份”#
任何会改世界、改核心、改玩法的事情,都按这四步走:
停服。不要在有玩家跑图的时候升级。
打两份:一份整服备份,一份世界备份。整服用于整体回退,世界用于只回地图。
导出到电脑:用备份列表的导出,或把备份目录整个拷走。导出后打开 zip 看一眼,确认不是 0 字节。
写版本记录:把下面这段填好,和备份放在一起。
备份日期:
Minecraft 版本:
核心类型与版本:
Java 来源与版本:
插件/模组清单(数量 + 关键项):
世界名:
最后一次确认能启动的时间:升级完成后,先自己进服走一圈,再让玩家进。确认没问题,再清理更早的手动备份;确认有问题,按“还原”那一节回退,不要在原目录上反复覆盖。
跨设备迁移:整目录 + 三个一致#
换手机时,最容易丢的不是世界,而是“能读这个世界的环境”。迁移要保证三个一致:
MC 版本一致:新手机的服务端核心版本要和旧的一致,至少不能低于世界的数据版本。
Java 一致:1.16 及以下要 Java 8,而 Java 8 只在 PRoot 的 Ubuntu 20.04 里;新手机没装对 Java,世界再好也起不来。
核心类型一致:Paper 的世界给 Forge 读,多数情况能读,但插件/模组数据对不上;反过来更麻烦。
操作顺序:旧手机停服 → 打整服备份 → 把备份 zip 拷到新手机同一目录 → 新手机装 Minexa、初始化环境、装同样的 Java → 备份页还原,或下载页导入 zip → 启动确认 Done。
不要直接拷贝正在运行的服务器目录,session.lock 和半写状态会跟着过去。目录结构、哪些文件不能动,见 服务端目录结构与文件说明;迁移后核心显示「未知」,按 导入服务器与整合包 里的办法重选核心。
文件名里的服务器目录、时间、核心类型,是还原时识别目标的依据。改掉核心字段,还原出来会变成「未知」核心,还得手动重选;改掉时间,列表里的时间可能解析不出,只能退回文件修改时间。要标注用途,可以另建一个 备份说明.txt,不要动 zip 的名字。
备份列表里能看到刚打的那一份,大小不是 0 字节。
自动备份开着时,间隔不是 0,保留份数是你想要的(默认 10 份)。
备份目录
/storage/emulated/0/世界与服务器的备份/里能看到文件,说明「所有文件访问」已授权。至少有一份整服备份已经拷到手机以外(电脑或网盘)。
用一份备份导入过测试服,终端出现过
Done。
下一步#
备份页每个按钮的具体行为:备份、还原与世界管理
让备份按点自动跑:自动化任务:定时开服、备份与公告
还原后服务器起不来:崩溃与存档损坏:从报告到恢复