仰望星辰工作室

better-staridc-MNBT

Z zfhsh first commit 1 天前
1#!/bin/bash
2set -e
3
4PLUGIN_DIR="/www/server/panel/plugin/mnbt_connector"
5cd "$PLUGIN_DIR"
6
7Install() {
8 if [ ! -f config.json ]; then
9 cat > config.json << 'EOF'
10{
11 "node_id": "",
12 "api_url": "",
13 "api_key": "",
14 "interval_seconds": 10,
15 "forbidden_scan": {
16 "enabled": false,
17 "content": "",
18 "skip_dirs": "node_modules,.git,.svn,.idea,vendor,cache,logs,temp,upload,uploads,backup,bak",
19 "skip_exts": "png,jpg,jpeg,gif,ico,svg,webp,mp4,mp3,avi,flv,rar,zip,7z,gz,tar,bz2,woff,woff2,ttf,eot,pdf,doc,docx,xls,xlsx,ppt,pptx,swf",
20 "max_file_size": 5242880,
21 "max_matches": 1000
22 }
23}
24EOF
25 fi
26
27 chmod +x worker.py mnbt_connector_main.py || true
28 touch worker.log || true
29
30 if command -v systemctl &>/dev/null; then
31 cat > /etc/systemd/system/mnbt-connector.service << EOF
32[Unit]
33Description=MNBT Connector Service
34After=network.target
35
36[Service]
37Type=simple
38ExecStart=/usr/bin/python $PLUGIN_DIR/worker.py
39WorkingDirectory=$PLUGIN_DIR
40Restart=on-failure
41RestartSec=10
42StandardOutput=append:$PLUGIN_DIR/worker.log
43StandardError=inherit
44
45[Install]
46WantedBy=multi-user.target
47EOF
48 systemctl daemon-reload
49 systemctl enable mnbt-connector.service
50 systemctl start mnbt-connector.service
51 echo "MNBT 连接器 systemd 服务已安装并启动(开机自启 + 崩溃自恢复)"
52 else
53 echo "MNBT 连接器已安装。请编辑 config.json 配置,然后在宝塔插件页面手动启动"
54 fi
55}
56
57Uninstall() {
58 echo "开始卸载 MNBT 连接器..."
59
60 if command -v systemctl &>/dev/null; then
61 systemctl stop mnbt-connector.service 2>/dev/null || true
62 systemctl disable mnbt-connector.service 2>/dev/null || true
63 rm -f /etc/systemd/system/mnbt-connector.service
64 systemctl daemon-reload
65 echo "已移除 systemd 服务"
66 fi
67
68 rm -f /www/server/panel/vhost/nginx/mnbt_cc.conf
69 rm -f /www/server/panel/vhost/nginx/mnbt_waf.conf
70
71 if command -v nginx &>/dev/null; then
72 nginx -t && nginx -s reload 2>/dev/null || true
73 echo "已重载 Nginx"
74 fi
75
76 echo "卸载完成"
77}
78
79if [ "${1}" == 'install' ]; then
80 Install
81elif [ "${1}" == 'update' ]; then
82 Install
83elif [ "${1}" == 'uninstall' ]; then
84 Uninstall
85fi