Skrypt startowy HLDS by Vikus
Od HLDS.pl
(Różnice między wersjami)
(→Skrypt) |
|||
| (Nie pokazano 1 wersji utworzonej przez jednego użytkownika) | |||
| Linia 11: | Linia 11: | ||
./cs_run show | ./cs_run show | ||
| − | |||
| − | |||
=Skrypt= | =Skrypt= | ||
<bash> | <bash> | ||
#!/bin/bash | #!/bin/bash | ||
| − | # | + | #---------------------------------------------------------------------- |
| − | # | + | # Description: Skrypt do uruchamiania servera Counter Strike 1.6 |
| − | # | + | # Author: Wiktor -> wiktor.vip(at)gmail(dot)com |
| − | # | + | # Version: 2.3 |
| − | + | # Date: 2007.09.08 | |
| − | # | + | # Copyright (c) 2007 Vikus All rights reserved. |
| − | + | #---------------------------------------------------------------------- | |
| − | # ------------------ | + | # Configure section: |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | # | + | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | DIR_HLDS="/home/cstrike/hlds_l" | + | DIR_HLDS="/home/cstrike/hlds_l" # sciezke do plikow serwera HLDS |
| − | PORT="27015" | + | PORT="27015" # port na jakim bedzie serwer |
| − | MP="14" | + | MP="14" # maxymalna liczba graczy |
| − | MAP="de_dust2" | + | MAP="de_dust2" # mapa startowa |
| − | CFG="server.cfg" | + | CFG="server.cfg" # plik konfiguracyjny do serwera |
| − | NAME=cs_server | + | NAME="cs_server" # nazwa dla screena |
PARAMS="-game cstrike -insecure +port $PORT +maxplayers $MP +map $MAP exec $CFG" | PARAMS="-game cstrike -insecure +port $PORT +maxplayers $MP +map $MAP exec $CFG" | ||
| Linia 48: | Linia 36: | ||
# wystarczy dodac do zmiennej PARAMS | # wystarczy dodac do zmiennej PARAMS | ||
# | # | ||
| − | # -autoupdate | + | # -autoupdate autoupdate sewera po restarcie |
| − | # -debug | + | # -debug tryb debugera |
| − | # -insecure | + | # -insecure VAC wylaczony |
| − | # -nomaster | + | # -nomaster serwer nie widoczny w przegladarce (find server) |
| − | # +sv_lan 1 | + | # +sv_lan 1 serwer na LAN |
| − | # +sv_password "" | + | # +sv_password "" haslo dla serwera |
| + | # +mapchangecfggfile $CFG | ||
# | # | ||
######################################################################## | ######################################################################## | ||
| + | # Dostepne komedy: | ||
| + | # ------------------ | ||
| + | # ./cs_run start - Uruchamia serwer HLDS | ||
| + | # ./cs_run stop - Zatrzymuje serwer HLDS | ||
| + | # ./cs_run restart - Resetuje serwer HLDS | ||
| + | # ./cs_run status - Sprawdza czy serwer HLDS jest uruchomiony | ||
| + | # ./cs_run show - Laczy sie z serwerem HLDS czyli screenem | ||
| + | #---------------------------------------------------------------------- | ||
| − | function | + | |
| − | { | + | function color_linux() { |
| − | ps aux | grep "SCREEN.*$NAME" | grep -v grep > /dev/null | + | RED="echo -en \\033[1;31m\c" |
| + | GREEN="echo -en \\033[1;32m\c" | ||
| + | YELLOW="echo -en \\033[1;33m\c" | ||
| + | BLUE="echo -en \\033[1;34m\c" | ||
| + | DARK="echo -en \\033[1;39m\c" | ||
| + | NORMAL="echo -en \\033[0;39m\c" | ||
| + | } | ||
| + | |||
| + | function check_proc() { | ||
| + | color_linux | ||
| + | |||
| + | ps aux | grep "SCREEN.*${NAME}" | grep -v grep > /dev/null | ||
let R=$? | let R=$? | ||
| − | + | ||
| − | if [ $R -eq 1 ] | + | if [ $R -eq 1 ]; then |
| − | + | PROC=HLDS_DOWN | |
| − | + | ||
else | else | ||
| − | + | PROC=HLDS_UP | |
fi | fi | ||
| − | } | + | } # end of check_proc() |
| + | function progress() { | ||
| + | color_linux | ||
| + | |||
| + | echo "" | ||
| + | for i in `seq 1 20`; do | ||
| + | ${BLUE} ; echo -n "# " ; ${NORMAL} | ||
| + | sleep 0.1 | ||
| + | done | ||
| − | function start_hlds | + | } # end of progress() |
| − | { | + | |
| + | function start_hlds() { | ||
check_proc | check_proc | ||
| − | + | color_linux | |
| − | if [ $ | + | |
| + | if [ ${PROC} = "HLDS_DOWN" ] | ||
then | then | ||
cd $DIR_HLDS | cd $DIR_HLDS | ||
| − | screen -A -m -d -S $NAME ./hlds_run $PARAMS | + | screen -A -m -d -S ${NAME} ./hlds_run ${PARAMS} |
| − | + | date +"%Y-%m-%d %H:%M:%S" > ${DIR_HLDS}/date.log | |
| − | + | ||
| − | echo | + | progress |
| − | + | echo "" | |
| + | ${GREEN} ; echo "* Serwer HLDS zostal uruchomiony!" ; ${NORMAL} | ||
| + | ${GREEN} ; echo "* Screen name: $NAME" ; ${NORMAL} | ||
else | else | ||
| − | + | echo "" | |
| − | + | ${RED} ; echo "* Serwer HLDS jest juz uruchomiony!" ; ${NORMAL} | |
| − | + | echo "" | |
| − | fi | + | fi |
| − | } | + | } # end of start_hlds() |
| − | function stop_hlds | + | function stop_hlds() { |
| − | { | + | |
check_proc | check_proc | ||
| − | + | color_linux | |
| − | if [ $ | + | |
| + | if [ ${PROC} = "HLDS_UP" ] | ||
then | then | ||
screen -wipe > /dev/null | screen -wipe > /dev/null | ||
kill -9 `screen -ls | grep -w $NAME | awk -F . '{print $1}' | awk '{print $1}'` | kill -9 `screen -ls | grep -w $NAME | awk -F . '{print $1}' | awk '{print $1}'` | ||
| − | + | progress | |
echo "" | echo "" | ||
| − | echo | + | ${GREEN} ; echo "* Serwer HLDS zatrzymany!" ; ${NORMAL} |
else | else | ||
| − | + | echo "" | |
| − | + | ${RED} ; echo "* Serwer HLDS nie jest uruchomiony!" ; ${NORMAL} | |
| − | + | echo "" | |
fi | fi | ||
| − | } | + | } # end of stop_hlds() |
| − | function restart_hlds | + | function restart_hlds() { |
| − | { | + | |
check_proc | check_proc | ||
| − | + | color_linux | |
| − | if [ $ | + | |
| + | if [ ${PROC} = "HLDS_UP" ] | ||
then | then | ||
| − | + | stop_hlds | |
| − | + | start_hlds | |
| − | + | echo "" | |
| − | + | ${GREEN} ; echo "* Serwer HLDS zrestartowany!" ; ${NORMAL} | |
else | else | ||
| − | + | echo "" | |
| − | + | ${RED} ; echo "* Serwer HLDS nie jest uruchomiony!" ; ${NORMAL} | |
| − | + | echo "" | |
fi | fi | ||
| − | } | + | } # end of restart_hlds() |
| − | function show_hlds | + | function show_hlds() { |
| − | { | + | |
check_proc | check_proc | ||
| − | + | color_linux | |
| − | if [ $ | + | |
| + | if [ ${PROC} = "HLDS_UP" ] | ||
then | then | ||
| − | + | screen -r ${NAME} | |
else | else | ||
| − | + | echo "" | |
| − | + | ${RED} ; echo "* Serwer HLDS nie jest uruchomiony!" ; ${NORMAL} | |
| − | + | echo "" | |
fi | fi | ||
| − | } | + | } # end of show_hlds() |
| − | function status_hlds | + | function status_hlds() { |
| − | { | + | |
check_proc | check_proc | ||
| − | + | color_linux | |
| − | if [ $ | + | |
| + | if [ ${PROC} = "HLDS_UP" ] | ||
then | then | ||
| − | + | echo "" | |
| − | + | ${GREEN} ; echo "* Serwer HLDS jest uruchomiony!" ; ${NORMAL} | |
| − | + | ${GREEN} ; echo "* Screen name: ${NAME}" ; ${NORMAL} | |
| − | + | check_uptime | |
| + | echo "" | ||
else | else | ||
| − | + | echo "" | |
| − | + | ${RED} ; echo "* Serwer HLDS nie jest uruchomiony!" ; ${NORMAL} | |
| − | + | echo "" | |
fi | fi | ||
| − | } | + | } # end of status_hlds() |
| + | function check_uptime() { | ||
| − | + | read line < ${DIR_HLDS}/date.log | |
| − | + | START_DATE=`date --date="$line" +"%s"` | |
| − | + | NOW_DATE=`date +"%s"` | |
| − | + | PERIOD=$(($NOW_DATE-$START_DATE)) | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | TT=$PERIOD | |
| − | + | DD=0;HH=0;MM=0;SS=0 | |
| − | + | let DD=TT/86400 | |
| − | + | let DD2=DD*86400 | |
| + | [[ "$DD" -gt 0 ]] && let TT=TT-DD2 | ||
| + | let HH=TT/3600 | ||
| + | let HH2=HH*3600 | ||
| + | [[ "$HH" -gt 0 ]] && let TT=TT-HH2 | ||
| + | let MM=TT/60 | ||
| + | let MM2=MM*60 | ||
| + | [[ "$MM" -gt 0 ]] && let TT=TT-MM2 | ||
| + | let SS=TT | ||
| + | TT="${DD} days ${HH} hrs ${MM} mins ${SS} secs" | ||
| − | + | ${GREEN} ; echo "* UPTIME SERWERA HLDS:`${YELLOW}` ${TT}" ; ${NORMAL} | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | } # end of check_uptime() | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | #MAIN | |
| − | + | #----------------------- | |
| − | + | color_linux | |
| − | + | ||
| − | + | case "$1" in | |
| + | start) | ||
| + | start_hlds | ||
| + | ;; | ||
| + | stop) | ||
| + | stop_hlds | ||
| + | ;; | ||
| + | restart) | ||
| + | restart_hlds | ||
| + | ;; | ||
| + | show) | ||
| + | show_hlds | ||
| + | ;; | ||
| + | status) | ||
| + | status_hlds | ||
| + | ;; | ||
| + | *) | ||
| + | echo "" | ||
| + | ${GREEN} ; echo "# `${BLUE}` Dostepne parametry:" ; ${NORMAL} | ||
| + | ${GREEN} ; echo "--------------------------------------" ; ${NORMAL} | ||
| + | ${GREEN} ; echo -e "# `${RED}` start `${GREEN}` \t- Start serwer HLDS" ; ${NORMAL} | ||
| + | ${GREEN} ; echo -e "# `${RED}` stop `${GREEN}` \t- Stop serwer HLDS" ; ${NORMAL} | ||
| + | ${GREEN} ; echo -e "# `${RED}` restart `${GREEN}` \t- Restart serwer HLDS" ; ${NORMAL} | ||
| + | ${GREEN} ; echo -e "# `${RED}` show `${GREEN}` \t- Polacz sie z serwerem HLDS" ; ${NORMAL} | ||
| + | ${GREEN} ; echo -e "# `${RED}` status `${GREEN}` \t- Status serwera HLDS" ; ${NORMAL} | ||
| + | echo "" | ||
| + | ;; | ||
| + | esac | ||
| + | |||
| + | </bash> | ||
| + | |||
| + | |||
| + | [[kategoria:Linux]] | ||
| + | [[Kategoria:HLDS]] | ||
| + | [[Kategoria:Skrypty]] | ||
Aktualna wersja na dzień 15:53, 7 lut 2008
Używanie
- Uruchamia serwer HLDS
./cs_run start
- Zatrzymuje serwer HLDS
./cs_run stop
- Resetuje serwer HLDS
./cs_run restart
- Sprawdza czy serwer HLDS jest uruchomiony
./cs_run status
- Laczy sie z serwerem HLDS czyli screenem
./cs_run show
Skrypt
#!/bin/bash #---------------------------------------------------------------------- # Description: Skrypt do uruchamiania servera Counter Strike 1.6 # Author: Wiktor -> wiktor.vip(at)gmail(dot)com # Version: 2.3 # Date: 2007.09.08 # Copyright (c) 2007 Vikus All rights reserved. #---------------------------------------------------------------------- # Configure section: DIR_HLDS="/home/cstrike/hlds_l" # sciezke do plikow serwera HLDS PORT="27015" # port na jakim bedzie serwer MP="14" # maxymalna liczba graczy MAP="de_dust2" # mapa startowa CFG="server.cfg" # plik konfiguracyjny do serwera NAME="cs_server" # nazwa dla screena PARAMS="-game cstrike -insecure +port $PORT +maxplayers $MP +map $MAP exec $CFG" # Dostepne wartosci ktore mozemy wykorzystac przy starcie serwera # wystarczy dodac do zmiennej PARAMS # # -autoupdate autoupdate sewera po restarcie # -debug tryb debugera # -insecure VAC wylaczony # -nomaster serwer nie widoczny w przegladarce (find server) # +sv_lan 1 serwer na LAN # +sv_password "" haslo dla serwera # +mapchangecfggfile $CFG # ######################################################################## # Dostepne komedy: # ------------------ # ./cs_run start - Uruchamia serwer HLDS # ./cs_run stop - Zatrzymuje serwer HLDS # ./cs_run restart - Resetuje serwer HLDS # ./cs_run status - Sprawdza czy serwer HLDS jest uruchomiony # ./cs_run show - Laczy sie z serwerem HLDS czyli screenem #---------------------------------------------------------------------- function color_linux() { RED="echo -en \\033[1;31m\c" GREEN="echo -en \\033[1;32m\c" YELLOW="echo -en \\033[1;33m\c" BLUE="echo -en \\033[1;34m\c" DARK="echo -en \\033[1;39m\c" NORMAL="echo -en \\033[0;39m\c" } function check_proc() { color_linux ps aux | grep "SCREEN.*${NAME}" | grep -v grep > /dev/null let R=$? if [ $R -eq 1 ]; then PROC=HLDS_DOWN else PROC=HLDS_UP fi } # end of check_proc() function progress() { color_linux echo "" for i in `seq 1 20`; do ${BLUE} ; echo -n "# " ; ${NORMAL} sleep 0.1 done } # end of progress() function start_hlds() { check_proc color_linux if [ ${PROC} = "HLDS_DOWN" ] then cd $DIR_HLDS screen -A -m -d -S ${NAME} ./hlds_run ${PARAMS} date +"%Y-%m-%d %H:%M:%S" > ${DIR_HLDS}/date.log progress echo "" ${GREEN} ; echo "* Serwer HLDS zostal uruchomiony!" ; ${NORMAL} ${GREEN} ; echo "* Screen name: $NAME" ; ${NORMAL} else echo "" ${RED} ; echo "* Serwer HLDS jest juz uruchomiony!" ; ${NORMAL} echo "" fi } # end of start_hlds() function stop_hlds() { check_proc color_linux if [ ${PROC} = "HLDS_UP" ] then screen -wipe > /dev/null kill -9 `screen -ls | grep -w $NAME | awk -F . '{print $1}' | awk '{print $1}'` progress echo "" ${GREEN} ; echo "* Serwer HLDS zatrzymany!" ; ${NORMAL} else echo "" ${RED} ; echo "* Serwer HLDS nie jest uruchomiony!" ; ${NORMAL} echo "" fi } # end of stop_hlds() function restart_hlds() { check_proc color_linux if [ ${PROC} = "HLDS_UP" ] then stop_hlds start_hlds echo "" ${GREEN} ; echo "* Serwer HLDS zrestartowany!" ; ${NORMAL} else echo "" ${RED} ; echo "* Serwer HLDS nie jest uruchomiony!" ; ${NORMAL} echo "" fi } # end of restart_hlds() function show_hlds() { check_proc color_linux if [ ${PROC} = "HLDS_UP" ] then screen -r ${NAME} else echo "" ${RED} ; echo "* Serwer HLDS nie jest uruchomiony!" ; ${NORMAL} echo "" fi } # end of show_hlds() function status_hlds() { check_proc color_linux if [ ${PROC} = "HLDS_UP" ] then echo "" ${GREEN} ; echo "* Serwer HLDS jest uruchomiony!" ; ${NORMAL} ${GREEN} ; echo "* Screen name: ${NAME}" ; ${NORMAL} check_uptime echo "" else echo "" ${RED} ; echo "* Serwer HLDS nie jest uruchomiony!" ; ${NORMAL} echo "" fi } # end of status_hlds() function check_uptime() { read line < ${DIR_HLDS}/date.log START_DATE=`date --date="$line" +"%s"` NOW_DATE=`date +"%s"` PERIOD=$(($NOW_DATE-$START_DATE)) TT=$PERIOD DD=0;HH=0;MM=0;SS=0 let DD=TT/86400 let DD2=DD*86400 [[ "$DD" -gt 0 ]] && let TT=TT-DD2 let HH=TT/3600 let HH2=HH*3600 [[ "$HH" -gt 0 ]] && let TT=TT-HH2 let MM=TT/60 let MM2=MM*60 [[ "$MM" -gt 0 ]] && let TT=TT-MM2 let SS=TT TT="${DD} days ${HH} hrs ${MM} mins ${SS} secs" ${GREEN} ; echo "* UPTIME SERWERA HLDS:`${YELLOW}` ${TT}" ; ${NORMAL} } # end of check_uptime() #MAIN #----------------------- color_linux case "$1" in start) start_hlds ;; stop) stop_hlds ;; restart) restart_hlds ;; show) show_hlds ;; status) status_hlds ;; *) echo "" ${GREEN} ; echo "# `${BLUE}` Dostepne parametry:" ; ${NORMAL} ${GREEN} ; echo "--------------------------------------" ; ${NORMAL} ${GREEN} ; echo -e "# `${RED}` start `${GREEN}` \t- Start serwer HLDS" ; ${NORMAL} ${GREEN} ; echo -e "# `${RED}` stop `${GREEN}` \t- Stop serwer HLDS" ; ${NORMAL} ${GREEN} ; echo -e "# `${RED}` restart `${GREEN}` \t- Restart serwer HLDS" ; ${NORMAL} ${GREEN} ; echo -e "# `${RED}` show `${GREEN}` \t- Polacz sie z serwerem HLDS" ; ${NORMAL} ${GREEN} ; echo -e "# `${RED}` status `${GREEN}` \t- Status serwera HLDS" ; ${NORMAL} echo "" ;; esac