Skip to content

Latest commit

 

History

History
executable file
·
237 lines (175 loc) · 9.66 KB

README.md

File metadata and controls

executable file
·
237 lines (175 loc) · 9.66 KB

minecraftctl

这是一个Minecraft服务端管理工具,支持后台运行,快速下载部署,启动,停止,重启,备份,恢复备份(alpha),向玩家发送消息,监控玩家消息并响应(alpha)

此脚本用于帮助运维人员减少重复的操作,帮助他们更加轻松的工作

目录

说明

项目背景

本工具原身是由Loft团队内部使用的开服/运维/开发工具, 在稳定的为若干公益服提供长达两年半的服务后, 我们决定将其开源, 以帮助更多的人.

Q&A

Q1: 本工具试图解决什么样的问题?
A1:

  1. 为低性能机器提供高性能利用率的Minecraft服务端管理工具.
  2. 为原版服务端添加额外的功能, 不需要使用第三方服务端.
  3. 提供自动化工具, 以实现自动化运维或在开发中提供协助.
  4. 提供一个服务端控制内核, 将常用工具进行整合, 以便于嵌入现有的CI或其他程序中.

Q2: 本工具与其他相似工具的优势在哪里?
A2:

  1. 更低性能的占用. 经测试, 常驻后台部分仅占用约1M内存(实际上用不到这么多), 其他部分更少, 能有效的为您节约服务器资源.
  2. 无需修改原始服务端即可支持一些实用功能.
  3. 实时生效的插件. 本工具支持实时加载/卸载/编辑插件, 无需重启服务端即可生效.
  4. 高效的自动部署功能. 首先感谢@bangbang93等大佬提供的高速下载服务, 利用这些服务, 本工具能够在几秒内完成服务端的下载与部署, 无需手动下载, 解压, 配置, 仅需一条命令即可完成.
  5. 理论上能够支持任意语言的插件, 不再会被技术栈绑定.

Q3: minecraftctl能做什么?
A3:

  1. minecraftctl能够帮助您快速的下载, 部署, 启动, 停止, 重启, 备份, 恢复备份, 向玩家发送消息, 监控玩家消息并响应等等.
  2. minecraftctl能够帮助您实现自动化运维, 例如: 自动化测试, 自动化部署, 自动化备份等等. 例如: 本项目的CI就是使用minecraftctl与pyCraft进行的测试

Build/release language support GitHub release (latest by date) License standard-readme compliant

构建包管理器安装包

deb

注意, 此条目自此提交起开始由github workflows实时构建, 您可以直接前往Actions页面下载

# 克隆仓库
git clone https://github.com/MemoryShadow/minecraftctl --depth 1
# 获取当前构架
arch=`dpkg --print-architecture`
# 生成配置包
minecraftctl/build/prepare.sh
cd "minecraftctl/build/deb/${Arch}"
# 打包成为deb
dpkg -b . ../minecraftctl_${Arch}.deb

rpm

注意, 此条目自此提交起开始由github workflows实时构建, 您可以直接前往Actions页面下载

# 克隆仓库
git clone https://github.com/MemoryShadow/minecraftctl --depth 1
# 安装打包工具
yum install rpmdevtools
# 初始化工作目录
minecraftctl/build/prepare.sh
cp -r minecraftctl/build/rpm ~/rpmbuild
rpmdev-setuptree
arch=`arch`
# 运行构建
rpmbuild -bb --target ${Arch} ~/rpmbuild/SPECS/minecraftctl.spec
# 文件在~/rpmbuild/RPMS目录下

安装

这个项目使用 git, screenaric2。请确保你本地安装了它们。

sudo yum/apt-get install screen aria2

安装deb软件包

sudo apt install minecraftctl*.deb

安装rpm软件包

sudo rpm -i minecraftctl*.rpm

Linux通用安装

注意: 使用此方案将会导致您无法使用包管理器管理此程序,但您能以最快的速度体验到最新的支持(相当于alpha版本)

注意: 使用通用安装时请保持root身份

在master分支滚动更新的我是屑

#!/bin/bash
# Clone the repository from Github
git clone --depth 1 -b master https://github.com/MemoryShadow/minecraftctl.git /usr/local/src/minecraftctl
# install minecraftctl
sudo /usr/local/src/minecraftctl/build/Universal.sh install
# uninstall minecraftctl software(remove the source code directory, installation directory, and the symbolic link)
sudo /usr/local/src/minecraftctl/build/Universal.sh uninstall

使用说明

QQ机器人相关后端代码正在逐渐剥离中,请先暂时联系我注册相关信息

您也可以自己实现WebAPI

安装后的部署

此脚本允许接受机器人消息,但是需要您来手动控制消息获取时间

# 编辑计划任务
crontab -e
# 启用计划任务
systemctl start crond
systemctl enable crond

在打开的文件中写下如下的内容:

# --------------------------------------------------------
# 每天凌晨的00:10和12:00热备份一次服务器(将会短暂的冻结服务器)
# 启动此计划后,可以将bukkit.yml(如果您是bukkit系服务端)中的autosave字段设为0,可有效避免储存计划的大量IO导致的崩服
10 0 * * * source /etc/profile;/usr/bin/minecraftctl backup
0 12 * * * source /etc/profile;/usr/bin/minecraftctl backup
# 每隔15秒写入一次,并要求不发送邮件,避免邮件过多
*/1 * * * * source /etc/profile;sleep 0;/usr/bin/minecraftctl QQMsg &>/dev/null
*/1 * * * * source /etc/profile;sleep 15;/usr/bin/minecraftctl QQMsg &>/dev/null
*/1 * * * * source /etc/profile;sleep 30;/usr/bin/minecraftctl QQMsg &>/dev/null
*/1 * * * * source /etc/profile;sleep 45;/usr/bin/minecraftctl QQMsg &>/dev/null
# --------------------------------------------------------

用法示例

[hostname@username ~]$ minecraftctl help
此脚本用于以尽可能简洁的方式对Minecraft服务端进行控制
minecraftctl <功能名称> [可能的参数]

  backup	备份或恢复服务器存档
  download
		分析传入的 URL 并尝试使用找到的最合适的下载方法
  edit  	编辑 minecraftctl 和 minecraft 相关文件
  help  	获取这个帮助菜单
  install  	在 Linux 上自动安装Minecraft服务端
  join  	连接服务器后台控制台
  listen  	听取传入的信息并采取适当的行动
  QQMsg  	获取QQ群消息
  restart  	重启 Minecraft 服务端
  say  		向游戏内发送消息
  start  	启动 Minecraft 服务端
  stop  	停止 Minecraft 服务端
  view  	[测试中]打开一个视图,可以查看服务器的状态的同时操作终端
[hostname@username ~]$

相关仓库

  • git — 版本控制器
  • screen — 一个优秀的会话管理工具
  • aric2 — 一个支持多线程和多协议的下载程序
  • whiptail - 用于支持whiptail窗口,来实现部分区域的窗口化交互 文档

项目状态

ProjectStatus

贡献者

Contributors

如何贡献

非常欢迎你的加入!参阅贡献指南

标准 Readme 遵循 Contributor Covenant 行为规范。

特别鸣谢

本项目高速下载由BMCL项目提供部分加速支持

感谢bangbang93MCBBS为我们的Minecraft之旅提供极高的下载速度

展望未来

现在本项目的附属项目正在逐步迁移至minecraftctl

详见Issues · 鸽子画饼

使用许可

GPL-3.0 © MemoryShadow