我的世界基岩服务器升级
本文首发于个人B站专栏:https://www.bilibili.com/opus/958794776765792258
1. 前言
PC端启动Minecraft Launcher后进入基岩版我的世界,如果有更新会自动更新到最新版本,更新后再连接自己部署的游戏服务器,则会无法连接并提示“主机使用的是较旧版本的《我的世界》。每个人都应该更新到最新版本的《我的世界》,然后重试。”
操作环境:
- 本地系统:Windows
- 服务器部署环境:Ubuntu 20.04 server 64bit
- SSH远程连接工具:FinalShell
- 升级版本:基岩版1.21.0.03 升级至 1.21.3.01
这次是第二次升级,上次升级是从1.20升级到1.21,在网上看了好几篇教程,有些写的比较简略,但总体操作下来也没出什么差错,但后续游戏版本肯定还会继续更新,写下这篇笔记主要是为了以后升级时自己能拿来参考。但既然都写下markdown了,干脆直接写详细点直接挂网上和个人wordpress上。因此,这边笔记会写的尽可能细,非程序员应该也能看懂怎么操作。
2. 停服备份
(1)首先通过以下命令查找MC服务器的PID(进程号),如下图中“./bedrock_server”就是基岩服务器进程,而“4165432”则是PID进程号。
ps -ef | grep server
(2)通过以下命令 kill -9 PID
,结束对应的服务
# 注意,下面要用自己查找出来的 PID
kill -9 4165432
此时再通过 ps -ef | grep server
查找会发现,原来的 ./bedrock_server
没显示了,说明游戏已经被停服了
(3)找到游戏服务器所在的路径,如我的游戏服务器文件放置在 /opt/mcbe
下
如果忘记自己的服务器部署的位置,可以尝试用以下命令查找,下图红框部分就是结果。
# 从根目录开始搜索,查找 bedrock_server 文件
find / -name "bedrock_server" # 记得双引号
(4)使用 cp
命令备份整个游戏文件夹,这一部其实也可以不做,主要是为了待会覆盖文件时如果出现异常也不至于丢失数据。
# 复制整个文件夹,副本文件夹名称为 mcbe_bak
cp -r /opt/mcbe /opt/mcbe_bak
(5)重命名 mcbe 文件夹。解释:待会下载的新版本服务器文件将解压成为新的 mcbe 文件夹,仅将配置文件和地图从旧的 mcbe 文件夹中覆盖过去。
“换基底”:类似于我升级微信,仅升级了微信软件的功能,但我的个人数据则直接迁移到新版本的微信中。
# 将 mcbe 文件夹 改名为 mcbe_old (前提:原先不存在名为 mcbe_old的文件夹)
cd /opt # 回到 mcbe 所在的父级文件夹路径下
mv mcbe mcbe_old
3. 下载新版本服务器文件
(1)打开网址:基岩版服务器下载 | Minecraft
由于网易代理了国区,所以国内IP打开都会提示跳转到网易的网站,我们选择留在当前页面即可。
(2)复制下载链接。在下载按钮处右键,选择“复制链接地址”,操作流程如下图:
(3)在finalshell中 使用 wget
命令下载。(如果没有安装 wget
可以是使用 sudo apt install wget
命令安装。)
执行命令前记得进入用于存放游戏文件的目录下,如我游戏文件存放于 /opt
下的 mcbe
文件夹, 即应该先通过 cd /opt
命令进入和游戏文件夹所处的同一级。
cd /opt
# 下面的网址记得换掉,不然就下载成老版本的了。
wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.21.3.01.zip
题外话:如果使用
wget
下载速度过慢,如何强行停止下载?停止下载后要干什么?
ctrl + c
强行停止下载。停止后删除掉下载一半的文件:rm [文件名]
如果上一步
wget
下载不了,也可以在本机上下载压缩包后上传到服务器后再解压。打钩,下载
将下载后的 zip文件拖动到服务器的文件列表中(部分SSH工具可能不支持)
(4)解压
由于下载下来的文件是 zip
,这里要用到 unzip
命令,这里简单介绍一下。
语法:unzip [-d] 参数
-d
,指定要解压去的位置- 参数,被解压的zip压缩包文件
由于我游戏文件存放在 mcbe
文件夹中,因此我要将 压缩包解压到这个文件夹里。但我们刚刚重命名了原来的 mcbe
文件夹为 mcbe_old
,所以需要再创建一个新的 mcbe
文件夹。
# 创建 新的 mcbe 文件夹
mkdir /opt/mcbe
# 解压 zip压缩包到 mcbe 文件夹内
unzip bedrock-server-1.21.3.01.zip -d /opt/mcbe
解压完毕,文件夹内容如图:
4. 迁移数据
接下来就该从旧的游戏服务器文件夹 mcbe_old
将 我们的配置,地图迁移到新的文件夹mcbe
中了。
需要从 mcbe_old
迁移的文件和文件夹包括:
- worlds (地图文件夹)
- permissions.json(用户权限,设置了哪些人为管理员)
- server.properties(游戏配置文件)
- allowlist.json(白名单,哪些人可以进入服务器。如果在server.properties中设置了 allow-list=true 则需要同步,否则不需要)
- behavior_packs(行为包,如果没有自己安装mod就不用)
- resource_packs(资源包,如果没有自己安装mod就不用)
移动文件和文件夹还是会用到刚刚所说的 mv
命令,语法如下:
mv 参数1 参数2
- 参数1:被移动的文件或文件夹
- 参数2:要移动去的地方,如果目标不存在,则进行改名
执行命令:
# 以下命令以 当前命令行位于 /opt 为例,可以用 pwd 命令查看目前命令行位于哪里
mv mcbe_old/worlds mcbe/ # 解释:将地图文件夹从 mcbe_old/worlds 移动到 新的服务器文件夹 mcbe 下。下同
mv mcbe_old/permissions.json mcbe/
mv mcbe_old/server.properties mcbe/
# 如果需要移动 behavior_packs 等其他文件和文件夹,仿照上面即可
5. 启动服务器
(1)首先进入到游戏服务器文件夹内:
cd /opt/mcbe
(2)执行以下命令。该命令不会在前台输出内容,同时也不会占用前台输入,并将服务器的实时日志输出到 /opt/mcbe/log.txt
中。
nohup bash -c 'LD_LIBRARY_PATH=. ./bedrock_server' >> /opt/mcbe/log.txt 2>&1 &
执行后可以看到输出了一串数字,这个是PID,可以用于结束服务器,正如本文开头所提到的。
启动后日志内容:
(3)接下来就可以顺利进入服务器了
6. 收尾
确认游戏服务器可以正常进入并运行后,就可以选择性删除不需要的旧版本数据和备份文件夹了:
(1)删除旧的游戏文件夹和备份文件夹
rm -rf /opt/mcbe_old
rm -rf /opt/mcbe_bak
(2)删除已经解压完的压缩包
rm -f /opt/bedrock-server-1.21.3.01.zip
Comments NOTHING