SRCDS Steam group


Shell Scripting, Needing someone to teach me some stuff.
#1
Wink 
Hey guys Smile

I am busy creating a script for my community servers, the issue i am having is that i think i am doing stuff the long way. Also know that since Counter-Strike: Source has changed there file structure it makes thinks a lot harder.

We have 4 types of servers.

Counter-Strike: Source
Team Fortress 2
Left 4 Dead 2
Minecraft

I am needing some help make a management script for the dedibox.

Also can people mark out places where i can improve it. Also please state how i can do that.
Also if you do want to help me. you can contact me on steam if you like.
Steam: graham1995

Heres what i got so far, its taken a while to learn all this so please be nice Smile

Code:
#!/bin/bash

#Script created by Graham "Citrix" Newton

#Functions
NO_ARGS=0
CMD=$1
SRV=$2

# Text color variables
txtund=$(tput sgr 0 1)    # Underline
txtbld=$(tput bold)       # Bold
txtred=$(tput setaf 1)    # Red
txtgrn=$(tput setaf 2)    # Green
txtylw=$(tput setaf 3)    # Yellow
txtblu=$(tput setaf 4)    # Blue
txtpur=$(tput setaf 5)    # Purple
txtcyn=$(tput setaf 6)    # Cyan
txtwht=$(tput setaf 7)    # White
txtrst=$(tput sgr0)       # Text reset

txtund=$(tput sgr 0 1)          # Underline
txtbld=$(tput bold)             # Bold

#Minecraft - Functions
UpdateURL=http://ci.bukkit.org/job/dev-CraftBukkit/Recommended/artifact/target/craftbukkit-0.0.1-SNAPSHOT.jar

#If the user inputted the detials incorrectly
usage() {
    echo "${txtred}${txtbld}ERROR - User enter the information wrong${txtrst}"
    echo "./tmf.sh start|stop|update|restart|status|start-all|stop-all|update-all {Server}"
}

server_start() {
START=`ps x | grep SCREEN | grep $SRV | cut -d '?' -f 1`
    if [ ! -n "$SRART" ]; then
        if [ $SRV = "badwater" ]; then
            cd $SRV/orangebox; ./$SRV.sh; cd
            echo -e "${textgrn}${txtbld}$SRV --- Starting Up${txtrst}"
        else
            cd $SRV/css; ./$SRV.sh; cd
            echo -e "${textgrn}${txtbld}$SRV --- Starting Up${txtrst}"
         fi
    else
        echo -e "${textred}${txtbld}Error: $SRV --- Already Running${txtrst}"
    fi
}

server_stop() {
STOP=`ps x | grep SCREEN | grep $SRV | cut -d '?' -f 1`
    if [ ! -n "$STOP" ]; then
        echo -e "${textred}${txtbld}Error: $SRV --- Already Offline${txtrst}"
    else
        screen -dr $STOP -X quit
        echo -e "${txtgrn}${txtbld}$SRV --- now Offline${txtrst}"
    fi
}

server_update() {
    PRC=`ps x | grep SCREEN | grep $SRV | cut -d '?' -f 1`
        if [ ! -n "$PRC" ]; then
            PRC=999999999999
        else
            kill -9 $PRC
            echo -e "${txtgrn}${txtbld}$SRV has been successfully shutdown${txtrst}"
        fi
    STILLRUN=`ps x | grep $PRC | grep -v grep | cut -d '?' -f 1`
        if [ "$STILLRUN" = "$PRC" ]; then
            echo -e "${txtred}${txtbld}Error: $SRV was unable to shutdown!${txtrst}"
            exit
        else
            echo "Updating $SRV now"
            if [[ $SRV = 'badwater' || $SRV = 'controlpoint' ]]; then
                /home/server/1hldsupdatetool/./steam -command update -game tf -dir "/home/server/$SRV"
            else
                /home/server/1hldsupdatetool/./steam -command update -game "counter-strike source" -dir "/home/server/$SRV"
            fi
            echo -e "${txtgrn}${txtbld}$SRV has been updated successfully${txtrst}"
            server_start
        fi
}

server_status() {
for i in aim badwater deathrun event jailbreak left4dead2 minecraft skillsurf
do
    if [ "$(screen -ls | grep $i)" == "" ] ; then
        echo -e "$i --- ${txtred}${txtbld}Offline${txtrst}"
    else
        echo -e "$i --- ${txtgrn}${txtbld}Online${txtrst}"
    fi
sleep 1
done
}

server_start_all() {
echo -e "${txtblu}${txtbld}Only Starting up Source / Valve Servers${txtrst}"
for i in aim deathrun event jailbreak skillsurf
do
if [ "$(screen -ls | grep $i)" == "" ] ; then
    cd $i/css
    ./$i.sh
    cd
    echo -e "$i --- ${txtgrn}${txtbld}Online${txtrst}"
else
    echo -e "$i --- ${txtred}${txtbld}Already Running${txtrst}"
fi
sleep 1
done
}

server_stop_all() {
for i in aim deathrun event jailbreak skillsurf
do
if [ "$(screen -ls | grep $i)" == "" ] ; then
    echo -e "$i --- ${txtgrn}${txtbld}Already Offline${txtrst}"
else
    screen -dr $STOP -X quit
fi
sleep 1
done
}

case $CMD in
    start)
        server_start
    ;;
    stop)
        server_stop
    ;;
    update)
        server_update
    ;;
    start-all)
        server_start_all
    ;;
    stop-all)
        server_stop_all
    ;;
    status)
        server_status
    ;;
    restart)
        server_stop
        sleep 1
        server_start
    ;;
    *)
        usage
esac

exit 0
Reply
#2
Moved to Linux.
~ Mooga ...w00t? - SRCDS.com on Twitter
[Image: 76561197965445574.png]
Please do not PM me for server related help
fqdn Wrote:if you've seen the any of the matrix movies, a game server is not all that different. it runs a version of the game that handles the entire world for each client connected. that's the 2 sentence explanation.
Reply
#3
I'd recommend asking specific help, just asking us to read your script won't get much attention Smile
Linux Gameserver connoisseur, SRCDS admin.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)