#!/bin/sh
clear
main_menu (){
cs_path="/usr/local/hlds_gameon3" #Путь к папке с сервером
my_uid="`id -u`" #id пользователя от которого запущен скрипт(в скрипте не используется,просто для информации)
my_name="`whoami`" #Имя пользователя от которого запущен скрипт
cs_port="27016" #Порт сервера КС
scr_name="g3hlds" #Имя сессии для screen сервера КС
scr_hltv_name="g3hltv" #Имя сессии для screen сервера hltv
cs_hltv_port="27022" #Порт для hltv
cs_max_players="30" #Максимальное число игроков для сервера КС
cs_startmap="aim_aztec" #С какой карты стартовать сервер
cs_server_name="Counter Strike GameOn AWP AIM" #Имя сервера(используется только в скрипте для наглядности)
cs_rcon_pass="qwerty" #Пароль для rcon
cd ${cs_path}
echo ===================================================================
printf "\033[32m Консоль управления сервером ${cs_server_name} \033[0m\n"
echo ===================================================================
printf "\033[37;1;41m Разработчик - Redacid(2008) \033[0m\n"
printf "\033[36m Твой uid - ${my_uid} \033[0m\n"
printf "\033[36m Твоё имя - ${my_name}\033[0m\n"
echo -------------------------------------------------------------------
echo "1) Перезапуск сервера "${cs_server_name}
echo "2) Консоль сервера КС"
echo "3) Компиляция плагинов AmxModX"
echo "4) Управление сервером HLTV"
echo "5) Список процессов"
echo "6) Убить процесс"
echo "9) Выход"
echo -------------------------------------------------------------------
echo -n "Сделайте выбор:"
read d
}
main_operations () {
case "$d" in
1)
echo ===================================================================
printf "\033[32m Перезапуск сервера ${cs_server_name} \033[0m\n"
echo ===================================================================
sleep 1
go_pids="`ps ax -U ${my_name} | grep -v 'ps' | grep -v restart | grep -v sshd | grep -v 'PID' | awk '{printf ( "%s ", $1 ) }'`"
echo -------------------------------------------------------------------
printf "\033[32m PIDы процессов: ${go_pids} \033[0m\n"
echo -------------------------------------------------------------------
printf "\033[32m Список процессов: \033[0m\n"
ps ax -U ${my_name}
echo -------------------------------------------------------------------
sleep 2
kill ${go_pids}
printf "\033[32m Процессы ${go_pids} убиты \033[0m\n"
printf "\033[32m Запускаем сервер \033[0m\n"
screen -d -m -S ${scr_name} ${cs_path}/hlds_run -game cstrike +sv_lan 1 +maxplayers ${cs_max_players} +port ${cs_port} -nomaster -insecure +rcon_password ${cs_rcon_pass} +map ${cs_startmap}
echo ===================================================================
printf "\033[32m Сервер КС перезапущен \033[0m\n"
echo ===================================================================
printf "\033[32m Список процессов \033[0m\n"
ps ax -U ${my_name}
echo -------------------------------------------------------------------
sleep 10
echo ;;
2)
echo ===================================================================
printf "\033[32m Консоль \033[0m\n"
echo ===================================================================
echo Для выхода из консоли поочерёдно нажать Ctrl+A, Ctrl+D
echo Будте внимательны !!! По неаккуратности можно завершить сервер
echo Консоль включится через пару секунд...
sleep 5
screen -r ${scr_name}
echo ;;
9)
echo ==================================================================
printf "\033[32m Выход \033[0m\n"
echo ==================================================================
exit 0
echo ;;
3)
echo ==================================================================
printf "\033[32m Компиляция плагинов AmxModX (после компиляции, для выхода нажмите Q) \033[0m\n"
echo ==================================================================
cd ${cs_path}/cstrike/addons/amxmodx/scripting
./compile.sh
echo ==================================================================
printf "\033[32m Плагины скампилированы \033[0m\n"
echo ==================================================================
echo ;;
4)
echo ==================================================================
printf "\033[32m Управление сервером HLTV ${cs_server_name} \033[0m\n"
echo ==================================================================
hltv_menu
echo ==================================================================
echo ;;
5)
echo ==================================================================
printf "\033[32m Список процессов ${my_name} \033[0m\n"
echo ==================================================================
ps ax -U ${my_name}
echo ==================================================================
echo ;;
6)
echo ==================================================================
printf "\033[32m Убить процесс \033[0m\n"
echo ==================================================================
ps ax -U ${my_name}
echo -n "Выберите PID процесса и нажмите ENTER:"
read kill_pid
kill -9 ${kill_pid}
echo ==================================================================
ps ax -U ${my_name}
echo ==================================================================
echo ;;
esac
main_menu
main_operations
}
hltv_menu () {
echo ===================================================================
printf "\033[32m Консоль управления сервером HLTV \033[0m\n"
echo ===================================================================
echo "1) Запуск сервера HLTV "${cs_server_name}
echo "2) Консоль сервера HLTV"
echo "9) Выход"
echo -------------------------------------------------------------------
echo -n "Сделайте выбор:"
read dd
case "$dd" in
1)
echo ===================================================================
printf "\033[32m Запуск сервера HLTV ${cs_server_name} \033[0m\n"
echo ===================================================================
printf "\033[32m Запускаем сервер \033[0m\n"
LD_LIBRARY_PATH=${cs_path}
export LD_LIBRARY_PATH
screen -d -m -S ${scr_hltv_name} ${cs_path}/hltv -port ${cs_hltv_port}
echo ===================================================================
printf "\033[32m Сервер HLTV запущен \033[0m\n"
echo ===================================================================
echo ;;
2)
echo ===================================================================
printf "\033[32m Консоль \033[0m\n"
echo ===================================================================
echo Для выхода из консоли поочерёдно нажать Ctrl+A, Ctrl+D
echo Будте внимательны !!! По неаккуратности можно завершить сервер
echo Консоль включится через пару секунд...
sleep 5
screen -r ${scr_hltv_name}
echo ;;
9)
echo ==================================================================
printf "\033[32m Выход \033[0m\n"
echo ==================================================================
#exit 0
echo ;;
esac
}
main_menu
main_operations