forked from MCSManager/Script
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup_cn.sh
More file actions
271 lines (205 loc) · 7.66 KB
/
setup_cn.sh
File metadata and controls
271 lines (205 loc) · 7.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
#!/bin/bash
printf "\033c"
# wget -N https://shell.ea0.cn/install_MCSManager.sh ; sudo bash install_MCSManager.sh
# 删除自己
rm -f "$0"
# 环境检查
Red_Error() {
echo '================================================='
printf '\033[1;31;40m%b\033[0m\n' "$@"
exit 1
}
if [ $(whoami) != "root" ]; then
Red_Error "[x] 请使用 root 权限执行 MCSManager 安装命令!"
fi
is64bit=$(getconf LONG_BIT)
if [ "${is64bit}" != '64' ]; then
Red_Error "[x] 当前面板版本不支持 32位 系统, 请使用 64位 系统!"
fi
# 开始安装
echo "+----------------------------------------------------------------------
| MCSManager FOR CentOS/Ubuntu/Debian
+----------------------------------------------------------------------
| Copyright © 2017-2021 Suwings(MCSManager.com) All rights reserved.
+----------------------------------------------------------------------
| Shell Install Script by 糯米(nuomiaa)
+----------------------------------------------------------------------
"
while [ "$go" != 'y' ] && [ "$go" != 'n' ]
do
read -r -p "[-] 现在要安装 MCSManager 到 \"/opt/mcsmanager\" 目录吗?(y/n): " go;
done
if [ "$go" == 'n' ];then
exit;
fi
# 定义 MCSManager 安装目录
mcsmanager_install_path="/opt/mcsmanager"
# 定义 Node 安装目录
node_install_path="/opt/node-v14.17.6-linux-x64"
if [ -d $mcsmanager_install_path ];then
printf "\033c"
echo -e "----------------------------------------------------"
echo -e "检查到已有 MCSManager 面版安装在 \"$mcsmanager_install_path\""
echo -e "继续安装会删除原有 MCSManager 面版的所有数据!"
echo -e "----------------------------------------------------"
echo ""
read -r -p "[-] 确认已了解以上内容,我确定已备份完成 (输入yes继续安装): " yes;
if [ "$yes" != "yes" ];then
echo -e "------------"
echo "取消安装"
exit;
fi
fi
if (systemctl -q is-active mcsm-daemon.service || systemctl -q is-active mcsm-web.service); then
echo "[-] MCSManager 服务正在运行,停止服务..."
systemctl stop mcsm-{daemon,web}.service
systemctl disable mcsm-{daemon,web}.service
echo
fi
Install_Node() {
printf "\033c"
echo "[x] 删除原有 Node 环境"
rm -irf ${node_install_path}
echo "[→] 进入 Node 安装目录"
cd /opt || exit
echo "[↓] 下载 Node v14.17.6 压缩包..."
wget https://npm.taobao.org/mirrors/node/v14.17.6/node-v14.17.6-linux-x64.tar.gz
echo "[↑] 解压 node-v14.17.6-linux-x64.tar.gz"
tar -zxf node-v14.17.6-linux-x64.tar.gz
echo "[x] 删除 node-v14.17.6-linux-x64.tar.gz"
rm -rf node-v14.17.6-linux-x64.tar.gz
echo "[x] 删除原有 Node 链接"
rm -f /usr/bin/npm
rm -f /usr/bin/node
rm -f /usr/local/bin/npm
rm -f /usr/local/bin/node
echo "[+] 创建 Node 链接"
ln -s ${node_install_path}/bin/npm /usr/bin/
ln -s ${node_install_path}/bin/node /usr/bin/
ln -s ${node_install_path}/bin/npm /usr/local/bin/
ln -s ${node_install_path}/bin/node /usr/local/bin/
printf "\033c"
echo "=============== Node Version ==============="
echo " node: $(node -v)"
echo " npm: $(npm -v)"
echo "=============== Node Version ==============="
echo
echo "[-] Node 安装完成,即将开始安装 MCSManager..."
echo
sleep 3
}
Install_MCSManager() {
printf "\033c"
echo "[x] 删除原有 MCSManager"
rm -irf ${mcsmanager_install_path}
echo "[+] 创建 MCSManager 安装目录"
mkdir -p ${mcsmanager_install_path} || exit
echo "[→] 进入 MCSManager 安装目录"
cd ${mcsmanager_install_path} || exit
echo "[↓] 下载 MCSManager 守护进程..."
git clone https://github.com.cnpmjs.org/nuomiaa/Daemon.git
echo "[-] 重命名 Daemon -> daemon"
mv Daemon daemon
echo "[→] 进入 MCSManager-Daemon 目录"
cd daemon || exit
echo "[+] 安装 npm 依赖库..."
npm install --registry=https://registry.npm.taobao.org
echo "[←] 退出 MCSManager-Daemon 目录"
cd ..
echo "[↓] 下载 MCSManager-Web 网页服务..."
git clone https://github.com.cnpmjs.org/nuomiaa/Web.git
echo "[-] 重命名 Web -> web"
mv Web web
echo "[→] 进入 MCSManager-Web 目录"
cd web || exit
echo "[+] 安装 npm 依赖库..."
npm install --registry=https://registry.npm.taobao.org
printf "\033c"
echo "=============== MCSManager ==============="
echo " Daemon(守护进程): ${mcsmanager_install_path}/daemon"
echo " Web(网页服务): ${mcsmanager_install_path}/web"
echo "=============== MCSManager ==============="
echo
echo "[-] MCSManager 安装完成,即将开始创建 MCSManager 系统服务..."
echo
sleep 3
}
Create_Service() {
printf "\033c"
echo "[x] 删除 MCSManager 服务"
rm -f /etc/systemd/system/mcsm-daemon.service
rm -f /etc/systemd/system/mcsm-web.service
echo "[+] 创建 MCSManager-Daemon 服务"
cat >>/etc/systemd/system/mcsm-daemon.service <<'EOF'
[Unit]
Description=MCSManager Daemon
[Service]
WorkingDirectory=/opt/mcsmanager/daemon
ExecStart=/usr/bin/node app.js
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
[Install]
WantedBy=multi-user.target
EOF
echo "[+] 创建 MCSManager-Web 服务"
cat >>/etc/systemd/system/mcsm-web.service <<'EOF'
[Unit]
Description=MCSManager Web
[Service]
WorkingDirectory=/opt/mcsmanager/web
ExecStart=/usr/bin/node app.js
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
[Install]
WantedBy=multi-user.target
EOF
echo "[-] 重载服务配置文件"
systemctl daemon-reload
echo "[+] 启用 MCSManager-Daemon 服务"
systemctl enable mcsm-daemon.service --now
echo "[+] 启用 MCSManager-Web 服务"
systemctl enable mcsm-web.service --now
echo "[↓] 下载 MCSManager-命令行..."
rm -f /opt/mcsm.sh
wget -P /opt https://shell.ea0.cn/mcsm.sh
chmod -R 755 /opt/mcsm.sh
echo "[+] 创建 MCSManager-命令行 链接"
rm -f /usr/local/bin/mcsm
ln -s /opt/mcsm.sh /usr/local/bin/mcsm
echo "[-] 正在检查服务..."
sleep 5
printf "\033c"
if (systemctl -q is-active mcsm-daemon.service && systemctl -q is-active mcsm-web.service); then
getIpAddress=$(curl -sS --connect-timeout 10 -m 60 https://shell.ea0.cn/api/getIpAddress)
LOCAL_IP=$(ip addr | grep -E -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -E -v "^127\.|^255\.|^0\." | head -n 1)
echo "=================================================================="
echo -e "\033[1;32mMCSManager - 恭喜,安装成功!\033[0m"
echo "=================================================================="
echo "网页服务地址-内网: http://${LOCAL_IP}:23333"
echo "守护进程地址-内网: http://${LOCAL_IP}:24444"
echo "网页服务地址: http://${getIpAddress}:23333"
echo "守护进程地址: http://${getIpAddress}:24444"
echo "默认账号: root"
echo "默认密码: 123456"
echo -e "\033[33m若无法访问面板,请检查防火墙/安全组是否有放行面板[23333/24444]端口\033[0m"
#echo "=================================================================="
#echo "重启服务: systemctl restart mcsm-{daemon,web}.service"
#echo "禁用服务: systemctl disable mcsm-{daemon,web}.service"
#echo "启用服务: systemctl enable mcsm-{daemon,web}.service"
#echo "启动服务: systemctl start mcsm-{daemon,web}.service"
#echo "停止服务: systemctl stop mcsm-{daemon,web}.service"
echo "=================================================================="
echo "您可以在命令行使用 \"mcsm\" 呼出 MCSManager-命令行"
else
Red_Error "[x] 服务启动失败"
fi
}
printf "\033c"
echo "[+] 安装 git tar 包..."
yum install -y git tar
apt install -y git tar
pacman -Syu --noconfirm git tar
# 安装
Install_Node
Install_MCSManager
Create_Service