捡垃圾搭建Ubuntu服务器,MC服务器,QQBOT

120元就可以配自己的服务器!150元配置升级!

之前那个什么随身wifi,什么电视盒子不算服务器

  1. 机箱+散热+电源300w =35+12=47
  2. h61+4g+亮机u=45
  3. 硬盘=25(买了个拆机的固态120g)
  4. 4g=10(自己加了4g)
  5. 电源线=6
  6. cpu=35(买了e3 1220v2升级了一下配置)

总计168(感觉还行,送的散热我换上去了,有点nb)
图片

硬件折腾过程

  1. 用的亮机u亮机,点半天点不亮(最后发现是cpu供电没插,难绷)什么都排除了,硬盘,线,显示屏,最后发现是忘插了
  2. 我让硬盘卖家装了一个xp系统,(其实没必要装,就想让他分区一下),然后用u盘装了UbuntuService版,装到电脑上,链接参考:点我看装服务器版Ubuntu硬盘那一步可以直接默认,懒得设置了。
  3. 然后开机,发现硬盘只有一半,然后上网搜资料点我 HERE

软件折腾过程

  1. 这个服务器本意是设置成MC服务器,然后去搜了MC服务器教程,发现只要安装一个JAVA18以上,然后把win端的转移过来就行了。这一步没啥好讲的。

  2. 关键的一步,设置MC服务器开机自启动,点我看按这个来,但是会报错,
    最后解决方式是在里面设置工作路径,和设置Forge端的里面的那个参数文件,有个最大内存啥的,我直接拉到8g了,我们也就大概10个人玩左右,爆不了内存。

  3. 第二关键的一步,搭一个qq机器人可以监控消息啥的,不知道现在有没有出新的,也不知道能用多久。点我去b站看视频教程切记选择手表扫码登录。
    图片

  4. 贴一下插件的代码:


from nonebot import on_command
from nonebot.rule import to_me
import requests
import socket
import subprocess
import os
import nonebot

pwd=""#这里输入sudo密码

from nonebot.adapters.onebot.v11 import (
    Bot,
    MessageEvent,
    MessageSegment,
    Message,
    GroupMessageEvent,
    ActionFailed,
)
from nonebot import get_driver

driver = get_driver()


@driver.on_bot_connect
async def do_something(bot: Bot):
    try:
        await bot.send_group_msg(group_id=int(群号), message="我复活辣~开冲MC!!!!\n原神启动!!!!")#群发如果风控就发送给下面两人
    except Exception as e:
        await bot.send_private_msg(user_id=int(账号), message="我复活辣~开冲MC!!!!\n原神启动!!!!")
        await bot.send_private_msg(user_id=int(账号2), message="我复活辣~开冲MC!!!!\n原神启动!!!!")

ipserver = on_command("服务器", rule=to_me(), aliases={"ip", "IP"}, priority=10, block=True)

ipstart = on_command("开启服务器", rule=to_me(), aliases={"原神启动", "启动"}, priority=11, block=True)
ipdown = on_command("关闭服务器", rule=to_me(), aliases={"关闭MC", "关闭"}, priority=11, block=True)
ipshowdown = on_command("关机", rule=to_me(), priority=5, block=True)


def check_service_status(service_name):  # 检查服务是否在运行
    try:
        status = subprocess.check_output(["systemctl", "is-active", service_name]).decode().strip()

        if status == "active":
            return f"MC服务器正在运行,请查询IP后进入!"
        else:
            return f"MC服务器未在运行,请输入原神启动来启动服务器"
    except subprocess.CalledProcessError:
        return f"无法找到 {service_name} 服务。"
    except Exception as e:
        return f"发生错误:{e}"


servercheck = on_command("MC状态", rule=to_me(), aliases={"MC", "mc"}, priority=20, block=True)

menu = on_command("菜单", rule=to_me(), aliases={"功能", "help"}, priority=25, block=True)


@ipserver.handle()
async def handle_function():
    ip = requests.get('http://ifconfig.me/ip', timeout=1).text.strip()
    ip2 = requests.get('http://ifconfig.me', timeout=1).text.strip()
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.connect(('8.8.8.8', 80))
    ip3 = s.getsockname()[0]
    s.close()

    await ipserver.send(
        "第一网络查询ip为:" + ip + "" + ":55556\n" + "第二网络查询ip为:" + ip2 + "" + ":55556\n" + "局域网查询ip为:" + ip3 + "" + ":56666")


@ipstart.handle()
async def handle_function():
    password = pwd
    command = 'systemctl start test.service'
    str = os.system('echo %s | sudo -S %s' % (password, command))
    await ipstart.send("已经开启了,请勿重复开启")


@ipdown.handle()
async def handle_function():
    password = pwd
    command = 'systemctl stop test.service'
    str = os.system('echo %s | sudo -S %s' % (password, command))
    await ipdown.send("已经关闭了,请勿重复关闭")


@ipshowdown.handle()  # 关机
async def handle_function():
    await ipshowdown.send("我会等你的喵!")
    password = pwd
    command = 'shutdown -h now'
    command1 = 'systemctl stop test.service'#这个test和bot是我写的自启动的服务
    command2 = 'systemctl stop bot.service'
    str = os.system('echo %s | sudo -S %s' % (password, command1))
    str = os.system('echo %s | sudo -S %s' % (password, command2))
    str = os.system('echo %s | sudo -S %s' % (password, command))


@servercheck.handle()  #
async def handle_function():
    # 要检查的服务名称
    service_name = "test.service"

    # 调用函数并打印结果
    result = check_service_status(service_name)

    await servercheck.send(result)


@menu.handle()  #
async def handle_function():
    await menu.send(
        "ip-----查看本机ip\n原神启动-----启动MC服务器\n关闭-----关闭MC服务器\nmc-----查看MC服务器是否在运行中\n状态-----查看服务器状态\n关机-----关闭本服务器\n")


  1. 因为这个nonebot隐藏了python,所以只能去安装别人的插件然后改他的代码(起码我是这么做的,然后记得那个勾子函数是在连接bot后启用) 。

6、nb的自启动,要把nb的绝对路径写下:
不然就会报错!

ExecStart=/home/User/.local/bin/nb run

点我看NONEBOTAPI

点我看NONEBOT文档

总结

好玩!
虽然挺累,虽然还要读论文
呜呜呜Orz

原文连接:https://nighttell.netlify.app/2023/11/01/server/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值