-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcsgo.sh
227 lines (195 loc) · 7.11 KB
/
csgo.sh
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
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#====================================#
# 系统要求: CentOS 6,7 #
# 描述: 一键安装CSGO服务器 #
# 作者: Suger #
# 联系方式: [email protected] #
#====================================#
clear
echo -e "\033[34m================================================================\033[0m
欢迎使用 CSGO服务器 一键安装脚本
系统要求: CentOS 6,7
描述: 一键安装 CSGO 服务器
作者: Suger
联系方式: [email protected]
\033[34m================================================================\033[0m"
echo
# 当前文件夹
Current_Dir=`pwd`
# 检查用户是否为root
function checkRoot() {
if [[ $EUID -ne 0 ]]; then
echo -e "\033[31m 错误: 本脚本必须以root用户执行! \033[0m"
exit 1
else
echo -e "Root用户检查完成"
fi
}
# 检查系统版本
function checkOS() {
if [[ -f /etc/redhat-release ]]; then
OS=`cat /etc/redhat-release`
echo -e "系统版本检查完成,当前系统为: ${OS}"
else
echo -e "\033[31m 目前脚本不支持当前操作系统! \033[0m"
exit 1
fi
}
# 安装steamcmd依赖
function installPackage() {
read -r -p "请回车继续安装, 或者按 Ctrl+C 停止安装"
yum update -y
echo -e "开始安装依赖: wget screen glibc.i686 libstdc++.i686 ......"
yum install -y wget screen glibc.i686 libstdc++.i686
echo -e "依赖安装完成"
}
# 创建新用户,下载steamcmd并解压,删除安装包
function createUser() {
read -p "请输入管理steamcmd的用户名(直接回车的话,默认为steam): " steamUser
[ -z "${steamUser}" ] && steamUser='steam'
read -p "请输入steamcmd文件夹名称(直接回车的话,默认为steamcmd): " steamcmdFolder
[ -z "${steamcmdFolder}" ] && steamcmdFolder='steamcmd'
# 创建并切换到该用户根目录下
useradd -m ${steamUser}
# su ${steamUser}
cd "/home/${steamUser}"
# 创建文件夹
mkdir ${steamcmdFolder}
cd ${steamcmdFolder}
# 下载steamcmd并解压
if ! wget --no-check-certificate https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz; then
echo -e "\033[31m 下载 steamcmd 文件失败,请检查网络状态. \033[0m"
exit 1
fi
tar zxvf steamcmd_linux.tar.gz
rm -f steamcmd_linux.tar.gz
echo
echo "------------------------------"
echo "成功设置用户${steamUser}"
echo "成功创建文件夹${steamcmdFolder}"
echo "成功下载并解压steamcmd"
echo "------------------------------"
echo
}
# 安装CSGO服务器端
function installCSGO() {
read -p "请输入CSGO服务器端文件夹名称(直接回车的话,默认为csgo): " csgoFolder
[ -z "${csgoFolder}" ] && csgoFolder='csgo'
echo -e "正在写入安装CSGO服务器脚本......"
touch install_csgo.txt
echo "login anonymous" >> install_csgo.txt
echo "force_install_dir ../${csgoFolder}" >> install_csgo.txt
echo "app_update 740 validate" >> install_csgo.txt
echo "quit" >> install_csgo.txt
echo "准备安装CSGO服务器端,接下来的操作取决于网络速度(20分钟左右)."
read -r -p "请回车继续安装, 或者按 Ctrl+C 停止安装"
./steamcmd.sh +runscript install_csgo.txt
echo -e "安装CSGO服务器端完成"
}
# 升级CSGO服务器端
function updateCSGO() {
echo -e "正在写入更新CSGO服务器脚本......"
touch update_csgo.txt
echo "login anonymous" >> update_csgo.txt
echo "force_install_dir ../${csgoFolder}" >> update_csgo.txt
echo "app_update 740" >> update_csgo.txt
echo "quit" >> update_csgo.txt
./steamcmd.sh +runscript update_csgo.txt
echo -e "写入更新CSGO服务器脚本完成"
}
# 配置CSGO服务器server.cfg文件
function setupCSGO() {
echo -e "正在下载并配置server.cfg文件......"
cd "../${csgoFolder}/csgo/cfg"
wget --no-check-certificate https://github.com/Sugerland/server/server.cfg
# 修改游戏hostname、rcon_paswword和sv_password
read -p "请输入CSGO服务器名称(默认为Counter-Strike:Global Offensive): " hostname
[ -z "${hostname}" ] && hostname='Counter-Strike:Global Offensive'
sed -i "s#KFC HVH#${hostname}#g" server.cfg
read -p "请输入RCON密码(用于服务器远程管理登录,默认为空): " rconPassword
[ -z "${rconPassword}" ] && rconPassword=''
sed -i 's/rcon_password ""/rcon_password "'${rconPassword}'"/g' server.cfg
read -p "请输入服务器密码(用于社区服务器浏览器连接进入房间,默认为空): " svPassword
[ -z "${svPassword}" ] && svPassword=''
sed -i 's/sv_password ""/sv_password "'${svPassword}'"/g' server.cfg
# 修改游戏sv_maxrate、sv_minrate、sv_accelerate和sv_tags
sed -i 's/sv_tags ""/sv_tags "CSGO by Suger"/g' server.cfg
read -p "请输入从steam官方申请的登录令牌(留空则需要自己配置): " steamAccount
if [[ -n "${steamAccount}" ]]; then
# 添加steam account信息
sed -i '6i\// steam account,修改为自己刚刚申请的登陆令牌' server.cfg
sed -i '7i\sv_setsteamaccount "'${steamAccount}'"' server.cfg
fi
# 将sed插入语句时文件的dos编码转为unix编码
sed -i 's/\r//' server.cfg
cd "../../"
echo -e "server.cfg文件配置完成"
}
# 安装source mod插件
function installMod() {
read -p "需要安装MetaMode和SourceMod插件吗?[y/n]: " needmod
case "${needmod}" in
'y' | 'Y' )
cd "csgo/"
wget --no-check-certificate -O sourcemod.tar.gz https://sm.alliedmods.net/smdrop/1.9/sourcemod-1.9.0-git6282-linux.tar.gz
tar zxvf sourcemod.tar.gz
wget --no-check-certificate -O mmsource.tar.gz https://mms.alliedmods.net/mmsdrop/1.10/mmsource-1.10.7-git971-linux.tar.gz
tar zxvf mmsource.tar.gz
rm -f sourcemod.tar.gz
rm -f mmsource.tar.gz
echo -e "MetaMod和SourceMod插件安装完成"
;;
* )
echo
;;
esac
}
# 修改权限
function chmodSteam() {
cd "/home/${steamUser}"
mv "${Current_Dir}/Steam/" "/home/${steamUser}/"
mv "${Current_Dir}/.steam/" "/home/${steamUser}/"
chown -R steamUser *
}
# 安装完成, 向用户展示安装信息
function showInfo() {
cd Current_Dir
clear
echo -e "---------------安装完成-----------------"
echo
echo -e "你的steamcmd用户名: ${steamUser}"
echo -e "你的steamcmd文件夹目录: /home/${steamUser}/${steamcmdFolder}"
echo -e "你的CSGO服务器文件夹目录: /home/${steamUser}/${csgoFolder}"
echo -e "steamcmd安装CSGO服务器脚本文件(位于${steamcmdFolder}中): install_csgo.txt"
echo -e "steamcmd更新CSGO服务器脚本文件(位于${steamcmdFolder}中): update_csgo.txt"
echo
echo -e "screen已安装, 关于如何启动服务器和在游戏中连接服务器, 请访问: https://www.jianshu.com/p/b2cde3ba7908"
echo -e "如已安装MetaMod和SourceMod, 关于如何添加各种插件, 请访问插件作者的官网。MetaMod和SourceMod安装在CSGO服务器文件夹中的: csgo/addons 中"
echo
echo -e "--------------------------------------"
echo
exit 1
}
# 安装步骤
# 检查root权限
checkRoot
# 检查系统版本
checkOS
# 安装依赖
installPackage
# 创建用户
createUser
# 安装CSGO服务器端
installCSGO
# 更新CSGO服务器端
updateCSGO
# 配置CSGO文件
setupCSGO
# 安装SourceMod
installMod
# 修改权限
chmodSteam
# 安装完成
showInfo