Don't starve Together server 使用Linux Shell脚本管理DST饥荒服务器
DST饥荒游戏服务器搭建脚本
上一次写了个饥荒服务器的搭建教程,后来想想一系列命令行操作有些繁琐,于是乎就想着把这些初始的游戏server安装配置自动化构建起来,那么什么最适合简单的服务器自动化命令操作呢?
在Linux服务器上这个答案显然是Shell脚本,(因为功能很少很简单还用不到python 233)
对于大家来说当然越简单使用当然越好,这样想了想, 然后就写了个小脚本:
go.sh
这个思想很简单,就是将更新服务器源到获取steamcmd到安装dst server版,建立文件夹等操作串联起来:
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
| #!/bin/bash
sudo apt-get update sudo apt-get install lib32gcc1 libcurl4-gnutls-dev:i386 screen
mkdir ~/steamcmd cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz tar -xvzf steamcmd_linux.tar.gz ./steamcmd.sh +login anonymous +force_install_dir ~/dst +app_update 343050 validate +quit
cp ~/steamcmd/linux32/libstdc++.so.6 ~/dst/bin/lib32/
cd ~/dst/bin echo ./dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Master > overworld.sh echo ./dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Caves > cave.sh
mkdir -p ~/.klei/DoNotStarveTogether/MyDediServer
cd ~
if [[ `echo $?` -eq 0 ]]; then echo -e "\033[42;30m ### 游戏服务器初始化完成,请放入配置文件并执行 ./dst \033[0m" else echo -e "\033[31m 执行出现了错误,可能因为网络不好,请尝试重新执行一次 \033[0m" fi
|
用法: source go.sh
DST饥荒游戏服务器管理脚本
随着游戏内时间的增加,饥荒服务器往往要经常更新,这个时候总是要登陆服务器运行一大串命令,就显得很是麻烦,于是我就搞了个简单管理脚本
dst.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
| #!/bin/bash
master='.klei/DoNotStarveTogether/MyDediServer/Master/' cave='.klei/DoNotStarveTogether/MyDediServer/Caves/'
dst_dir=(${master} ${cave})
stop(){ ps -ef|grep dontstarve|awk '{print $2}'|xargs kill -9 if [[ -z `ps -ef | grep -v grep |grep -v "dst.sh"|grep "dontstarve"|sed -n '1P'|awk '{print $2}'` ]]; then echo -e "\033[32m ##: 饥荒服务器停止成功!! \033[0m" fi }
del(){ stop for i in ${dst_dir[@]}; do if [[ -d ${i}"save" ]]; then rm -r ${i}"save"&&rm -r `find ${i} -name "*.txt"` && rm -r ${i}"backup" echo -e "\033[32m ##: ${i}'s 文件已经删除! \033[0m" fi done }
goMaster(){ cd ~/dst/bin
if [[ -z `ps -ef | grep -v grep |grep -v "dst.sh"|grep "Master"|sed -n '1P'|awk '{print $2}'` ]]; then screen -dm sh overworld.sh && if [[ `echo $?` -eq 0 ]]; then echo -e "\033[36m ##: 地上成功启动... \033[0m" fi else echo -e "\033[31m !!! 地上正在运行中!!! \033[0m" fi }
goCaves(){ cd ~/dst/bin if [[ -z `ps -ef | grep -v grep |grep -v "dst.sh"|grep "Caves"|sed -n '1P'|awk '{print $2}'` ]]; then screen -dm sh cave.sh && if [[ `echo $?` -eq 0 ]]; then echo -e "\033[36m ##: 洞穴启动成功... \033[0m" fi else echo -e "\033[31m !!!洞穴正在运行中!!! \033[0m" fi }
go(){ goMaster goCaves }
restart(){ stop go }
reset(){ del go }
updst(){ stop ~/steamcmd/steamcmd.sh +login anonymous +force_install_dir ~/dst +app_update 343050 validate +quit if [[ `echo $?` -eq 0 ]]; then echo -e "\033[46;37m ##: 饥荒游戏版本更新成功!! \033[0m" fi }
main(){
echo -e "\033[42;30m ### 饥荒Sever管理脚本 ### \033[0m" echo -e "\033[32m 0. \033[0m 启动地上+洞穴" echo -e "\033[32m 1. \033[0m 只启动地上" echo -e "\033[32m 2. \033[0m 只启动洞穴" echo -e "\033[32m 3. \033[0m 停止饥荒游戏进程" echo -e "\033[32m 4. \033[0m 删除游戏存档记录" echo -e "\033[32m 5. \033[0m 重启游戏(非重置),可以更新mod" echo -e "\033[32m 6. \033[0m 重置饥荒游戏,将删除游戏存档记录" echo -e "\033[32m 7. \033[0m 更新饥荒游戏版本"
read -p "输入数字,回车确认选择: " choose case $choose in 0 ) go ;; 1 ) goMaster ;; 2 ) goCaves ;; 3 ) stop ;; 4 ) del ;; 5 ) restart ;; 6 ) reset ;; 7 ) updst ;; * ) echo -e "\033[31m 请输入下列正确的数字选项!! \033[0m" main ;; esac }
main
|
用法: ./dst.sh
这样日常再维护游戏服务器就很方便啦~
详情见:—>DST-Server-Build