Здравствуйте, гость Вход | Регистрация
Наши новости:
|
| Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
|---|---|---|---|---|---|
| 20.1.2015, 19:26 | Школо-DOS | Уважаемые форумчане. Я на линуксе недавно. Сегодня заметил что сервер мой досят. подскажите плз как установить ип человека кто досит? мб есть защита (знаю что платных море но далеко не все вы их покупаете).... Ось Debian 6 x64 Я за частую для начала смотрю подробные логи что пишет сам сервер. qconsole если таковой имеется, или в папке logs. А вообще, я сделал проще. xtable-addons + geoip + iptables (-I INPUT ! -i lo -m geoip ! --src-cc UA,RU -j DROP) |
cstriker | ||
| 19.3.2013, 20:28 | Выбор Античита без клиентской части | Доброго времени суток. Дабы не создавать тему с вопросом и не разводить лишнего флуда прошу всех желающих проголосовать за известные античиты приведенные в голосовании. Прошу так же отдовать свои голоса адекватно, то бишь, учитывая качество работы античита, а не так "Нравится и все тут". Если что то забыл добавить напомните или поправьте. =)) PS. Думаю результаты голосвания будут полезны для многих, а так же помогут избежать создание лишних тем. ЗЫ. Вписал все те что видел на данном форуме и наиболее актуальны в обсуждении. АХ да забыл. Если спользуйте несколько античит плагинов то бишь (один против ВХ, дургой против алиасов/скриптов, третий против аима и т.д.) Указывайте какие используете, так как в опрос все впихивать не очень хорошо =) Цитата Alias Checker - 1 Aim detector - 5 OpenglDetector - 4 Speedhack Detector - 3 Hacks Detector - 2 sbguardian - 4 |
apTmusic, gudaus | ||
| 20.6.2011, 23:05 | Faq По Созданию Надёжной, Быстрой Платформы Для Игрового Сервера Из Gentoo Linux © Shadowboss | Tamplier, Оо, спасибо большое! =)) Выручил не меня одного )))) желающих было много =)) Кстати, пока на время отсутствия статьи от Corax'a, тут есть полезная на мой взгляд информация по оптимизации ядра. Ссылка тут http://wiki.fragaholics.de/index.php/EN:Linux_Kernel_Optimization PS.Для более менее понимающих английский =)) |
_Skyline, 330863 | ||
| 14.4.2011, 22:04 | RCON Defencer | Брутят тебя балбес что ж тут непонятного... Самое интересное, что меня вот брутят уже наверно пол года точно, до сих пор в логах инфа, но ведь если юзают прогу, то этому человеку рано или поздно надоест, ведь полгода брутом заниматься это уж сума сойти можно.... есть ли возможность у этого плагина давать автобан тем, кто пытается подобрать ркон.. например, после 2-3 неудачной попытки?? если нет - то, подскажите, как это сделать?)) Так есть же стандартные настройки (Серверные cvar) в которых помечается, через сколько попыток сервер автоматом даст бан, после определенного количества неудачных попыток ввести rcon. Rcon cvar's // Количество минут на которое будет забанен игрок 1 - 60 max, если он не пройдет RCON аутентификацию // По умолчанию: 0 (0 = Навсегда) sv_rcon_banpenalty 15 // Максимальное число попыток пользователя ввести правильный пароль 1 - 20 max, // по истечении этого кол-ва попыток игрок будет забанен. // По умолчанию: 10 sv_rcon_maxfailures 3 // Максимальное число попыток пользователя ввести правильный пароль 1 - 20 max, // по истечении этого кол-ва попыток игрок будет заблокирован на время указанное в следующем пункте. // По умолчанию: 5 sv_rcon_minfailures 1 // Количество секунд до разрешения повторно ввести RCON пароль, если сначала он был введен не правильно. // По умолчанию: 30 sv_rcon_minfailuretime 30 // Записывать в логи действия связанные с RCON или нет. // По умолчанию: 1 sv_rcon_log 1 |
ZeroXL | ||
| 12.2.2011, 18:19 | Faq По Созданию Надёжной, Быстрой Платформы Для Игрового Сервера Из Gentoo Linux © Shadowboss | _Skyline, c0rax | |||
| 12.2.2011, 18:18 | Долгий коннект к серверу, a иногда и FAIL | Я помню на убунте пользовался утилитой FireStarter, она сама расписывала за тебя iptables, а ты только указываешь какой порт необходимо открыть и т.д....Но возможно это правда что-то в фаерволе. А вот тестить лучше всего, не отключать плагины по отдельности, а просто иметь под рукой чистый скаченный сервер, и на него пробовать заходить, вот если зайдет без проблем, то станет понятна причина, если так же все будет, то копать уже надо в сторону ОС. И еще условие, не стоит ли по пути к провайдеру или у тебя дома каких то маршрутизаторов или роутеров, которые так же могут содержать в себе фаерволл. |
empy | ||
| 9.2.2011, 23:30 | Faq По Созданию Надёжной, Быстрой Платформы Для Игрового Сервера Из Gentoo Linux © Shadowboss | c0rax, Верни статью! Хотя бы под спойлер ее вбей, как старую статейку! =((( |
_Skyline | ||
| 3.2.2011, 2:35 | ticrate | Ну имелось в виду то, если помимо hlds еще что-то будет использоваться.. а если только hlds то x86 вполне сойдет. Ааа, ну у меня в принципе стоит только apache+mysql+php на котором используется только amxbans...Когда ты мне настраивал nginx =)), у меня потом хард полетел. А так, я понимаю что и х32_86 подойдет для использования hlds+web server? ps. Поделись мануалом своим, а то ты его реконструируешь, а я по нему ставил генту и вообще уже давно это делал и забыл некоторые детали. Люди, запутался я с Вашими переменными, один говорит одно, другой - другое. Имеются мощные серверные машины. Ось - debian lenny (stable). Код *@?:~/cs16$ uname -a Linux * 2.6.26-2-amd64 #1 SMP Thu Nov 25 04:30:55 UTC 2010 x86_64 GNU/Linux При sys_tickrate 1000 && fps_max 1000 происходит следующая картина: Код stats CPU In Out Uptime Users FPS Players 2.00 0.00 0.00 1 0 916.59 0 stats CPU In Out Uptime Users FPS Players 2.25 0.00 0.00 1 0 931.10 0 stats CPU In Out Uptime Users FPS Players 2.00 0.00 0.00 1 0 934.58 0 stats CPU In Out Uptime Users FPS Players 2.00 0.00 0.00 1 0 937.21 0 stats CPU In Out Uptime Users FPS Players 2.00 0.00 0.00 1 0 906.62 0 stats CPU In Out Uptime Users FPS Players 2.00 0.00 0.00 1 0 931.10 0 stats CPU In Out Uptime Users FPS Players 5.00 0.00 0.00 1 0 945.18 0 stats CPU In Out Uptime Users FPS Players 5.00 0.00 0.00 1 0 934.58 0 stats CPU In Out Uptime Users FPS Players 3.00 0.00 0.00 1 0 938.97 0 stats CPU In Out Uptime Users FPS Players 2.00 0.00 0.00 1 0 932.84 0 stats CPU In Out Uptime Users FPS Players 2.50 0.00 0.00 1 0 919.96 0 Желательна стабильность. Иметь 1к фпс необходимо для gather серверов. UPD: Прошу прощения за громоздкий текст, тег спойлара глючный и придирчивый до ужаса - так и не понял что ему не нравится. У тебя стабильность ух какая хорошая, не парься по этому поводу, стрельба на сервере должна быть замечательная, могу даже проверить, уж толк и тонкости стрельбы я знаю. Поставь ФПС просто 1100 и будет 1000 показывать +-. А вот если как у меня будет прыгать (ticrate 500) 240-300-500 это уже плохо. Но ты лучше эти показатели фпс выкладывай тогда, когда у тебя сервер заполнен хотя бы больше чем на половину, там виднее будет. ps. Код [spoiler=name]abcd[/spoiler] Но по теме. Я использовал настройки таковы, sys_ticrate 550, в скрипте запуска -pingboost 3 +sys_ticrate 550, nice -20 (особенно многое изменил параметр nice), стрельба стала четкая и кучная, но фпс все же прыгало, мне не обязательно что бы оно было постоянно столько сколько я укажу, но хотя бы что бы интервал в этих прыжках не был в 200. Хотя бы от 450-550. Или мне на самом деле лучше поставить х32 гентуху и в ядре покопаться получше?Повырезать всякое барахло... Разница то будет? А то говорите мол сервера заточены под х32 системы... А то тут слышал (как всегда слухи), что мол скачки фпс на линуксах это не излечимо и что лучше ставить Windows Server 2008(2003) и там фпс не прыгает, и сервера стабильнее работают... И вообще, лучше ли сервер прикручивать к одному ядру или же не важно, можно и на 2х? |
dasjke | ||
| 2.2.2011, 15:12 | Упрощенная консоль. | Вот эту строчку изменить Цитата $INTR ./hlds_run -game $hlds_gametype +maxplayers $hlds_players +map $hlds_map +ip $hlds_ip +port $hlds_port на вот такую Цитата $INTR nice -15 ./hlds_run -game $hlds_gametype +maxplayers $hlds_players +map $hlds_map +ip $hlds_ip +port $hlds_port nice -15 приоритет. |
sabas | ||
| 2.2.2011, 3:37 | Упрощенная консоль. | Простой и понятный скрипт. Присутствуют команды start | stop | restart | status | console ![]() script v0.92 Код #!/bin/bash ### BEGIN INIT INFO # Provides: hlds # Required-Start: $syslog $local_fs $network # Required-Stop: $syslog $local_fs $network # Should-Start: $remote_fs $named # Should-Stop: $remote_fs $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start HLDS Server # Description: HLDS Start Script # # author: LeXiKoN http://eqline.ru # version: 0.92 # ### END INIT INFO # Source function library. . /sbin/functions.sh VERSION=0.92 ##################################################### # Конфигурирование ##################################################### SERVER_NAME="Classic server" #Название сервера screen_name=Server_classic #Название screen-сессии path="/home/hldsserver" #Путь до ROOT-директории сервера hlds_ip=127.0.0.1 #IP сервера hlds_port=27017 #Порт сервера hlds_gametype=cstrike #Тип игры hlds_players=28 #Максимальное количество игроков на сервере hlds_map=de_dust2 #Имя первоначальной карты при запуске hlds_pid=server.pid screen_pid=$screen_name-screen.pid hlds_options="-pingboost 3 +exec server.cfg -secure -master +sv_lan 0" #Дополнительные параметры запуска use_user=root #Имя юзера от которого запускается сервер condebug=1 check_version=0 checker_command="quakestat" #Команда пакета qStat отвечающего за проверку сервера #---------------------------------------------------- # Номер ядра/процессора в линуксе # 2х-ядерные: 0 - первое ядро, 1 - второе ядро # 4x-ядерные: 0 - первое ядро ... 3 - четвертое ядро # По аналогии с другими многоядерными процессорами use_core=1 #---------------------------------------------------- ################# ВНИМАНИЕ ################### # # Строчки ниже, если не знаете, лучше не трогать! # ################# ВНИМАНИЕ ################### RETVAL=0 succes="[\033[1;32m ОК \033[0m]" failed="[\033[1;31m FAIL \033[0m]" status_on="[\033[1;32m Online \033[0m]" status_off="[\033[1;31m Offline \033[0m]" title="\033[1;34m [::]\033[0m" if [ $condebug = 1 ]; then hlds_options2="-condebug" fi # Команда screen INTR="taskset -c $use_core /usr/bin/screen -A -m -d -S $screen_name" if [ ! -x $path/hlds_run ]; then printf "\033[22;31m Проверьте права на исполнение hlds_run \033[0m\n" exit 1 fi prestart_check() { if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[1;34m Сервер $SERVER_NAME\033[0m \033[32m(!!) на данный момент УЖЕ работает (!!)\033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit 1 else cd $path rm -rf $path/$screen_pid rm -rf $path/$hlds_pid fi fi } start() { if [ $check_version = 1 ]; then check_version fi # Проверка престартовая prestart_check echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cd $path $INTR ./hlds_run -game $hlds_gametype +maxplayers $hlds_players +map $hlds_map +ip $hlds_ip +port $hlds_port $hlds_options $hlds_options2 -pidfile $hlds_pid # Поиск и запись пидов процессов сервера и скринв системе ps -ef | grep SCREEN | grep "$screen_name" | grep -v grep | awk '{ print $2}' > $path/$screen_pid printf "$title\033[1;34m Запуск сервера $SERVER_NAME \033[0m\n" printf "\033[1;35m Порт севрера:\033[0m \033[1;36m$hlds_port\033[0m\n" printf "\033[1;35m Привязка к ядру:\033[0m \033[1;36m$use_core\033[0m\n" printf "\033[1;35m Запуск от юзера:\033[0m \033[1;36m$use_user\033[0m\n" printf "\033[1;33m Статус ~> \033[0m" sleep 1 if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf "%53s$succes \n" else printf "%53s$failed \n" fi fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } stop() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then # Извлекаем ID процесса из файла и увибаем процессы kill `cat $path/$hlds_pid` kill `cat $path/$screen_pid` sleep 1 rm -rf $path/$screen_pid rm -rf $path/$hlds_pid printf "$title\033[1;31m Остановка $SERVER_NAME \033[0m" printf "%33s$succes \n" else printf "\033[1;34m Невозможно остановить $SERVER_NAME, сервер НЕ запущен \033[0m" printf "%5s$failed \n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } status() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "$title\033[1;34m Статус сервера $SERVER_NAME \033[0m\n" printf "\033[1;35m Порт севрера:\033[0m \033[1;36m$hlds_port\033[0m\n" printf "\033[1;35m Привязка к ядру:\033[0m \033[1;36m$use_core\033[0m\n" printf "\033[1;35m Запуск от юзера:\033[0m \033[1;36m$use_user\033[0m\n" printf "\033[1;33m Статус ~> \033[0m" sleep 1 ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf "%49s$status_on \n" else printf "%48s$status_off \n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } console() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then printf "$title\033[1;34m Подключение к консоли $SERVER_NAME сервера \033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[36m Для выхода из консоли поочерёдно нажать \033[1;36mCtrl+A, D \033[0m\n" printf "\033[36m Для листинга консоли поочерёдно нажать \033[1;36mCtrl+A, Esc \033[0m\n" printf "\033[36m Для выхода из режима листинга нажать \033[1;36mEsc \033[0m\n" printf "\033[1;31m Внимание!!! По неаккуратности можно положить сервер :D \033[0m\n" echo " Консоль включится через 5 секунд..." sleep 5 /usr/bin/screen -R $screen_name else printf "\033[1;31m Невозможно подключиться к $SERVER_NAME, сервер не запущен \033[0m\n" fi } compile() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -d $path/cstrike/addons/amxmodx ]; then printf "\033[32m Компиляция плагинов AmxModX \033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[36m Компилируются исходные файлы (sma), находящиеся в директории {addons/amxmodx/scripting/*.sma} \033[0m\n" printf "\033[36m По завершению компиляции нажмите Q для выхода \033[0m\n" printf "\033[36m Компиляция начнется через 2 секунды. \033[0m\n" sleep 2 cd $path/cstrike/addons/amxmodx/scripting ./compile.sh echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[32m Плагины скомпилированы \033[0m\n" else printf "\033[22;31m Проверьте установлен ли AmxModX (??) \033[0m\n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } check_version() { echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cd $path rm -f version.txt wget http://eqline.ru/project/hlds_init_script/version.txt 1> /dev/null 2>&1 sleep 1 for ver in `cat $path/version.txt` do if [ $VERSION \< $ver ]; then printf "\033[1;31m Доступна новая версия скрипта ( $ver )\033[0m\n" printf "\033[36m Подробнее на форуме eQline.ru: http://forum.eqline.ru \033[0m\n" printf "\033[1;36m Ссылка: http://forum.eqline.ru/topic/361-скрипт-запуска-hlds-серверов/ \033[0m\n" else printf "\033[1;36m Ваша версия является последней\033[0m \033[1;34m( Текущая версия: $VERSION ) \033[0m\n" fi break done echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rm -f version.txt sleep 1 } checker() { checktag="[HLDS-CheckUP]" checkdown=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep DOWN` if [ -n "$checkdown" ]; then printf "\033[1;37m$checktag\033[0m $SERVER_NAME \033[31m*[DOWN]*\033[0m\n" # echo Отсылаем почту cd $path time=`date +%X` date=`date +%D` inlog=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep DOWN` printf "[$time - $date] *[DOWN]* $inlog\n" >> checker.log stop sleep 2 start sleep 1 echo ----------------ATTANTION---------------- >> checker.log printf "StartUP $SERVER_NAME:" >> checker.log ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf " *[OK]* \n" >> checker.log else printf " *[FAILED]* \n" >> checker.log fi echo ----------------------------------------- >> checker.log exit 1 fi checkup=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep cstrike` if [ -n "$checkup" ]; then printf "\033[1;37m$checktag\033[0m $SERVER_NAME \033[32m*[OK]*\033[0m\n" cd $path time=`date +%X` date=`date +%D` inlog=`quakestat -P -a2s $hlds_ip:$hlds_port | grep cstrike` printf "[$time - $date] *[OK]* $inlog\n" >> checker.log exit 1 fi } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 2 start ;; status) status ;; console) console ;; compile) compile ;; checkUpdate) check_version ;; checker) checker ;; *) echo "Usage: $0 {start|stop|restart|status|console|compile|checkUpdate|checker}" exit 1 esac script v0.94 #!/bin/bash ### BEGIN INIT INFO # Provides: hlds # Required-Start: $syslog $local_fs $network # Required-Stop: $syslog $local_fs $network # Should-Start: $remote_fs $named # Should-Stop: $remote_fs $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start HLDS Server # Description: HLDS Start Script # # author: LeXiKoN http://eqline.ru # version: 0.94 # ### END INIT INFO # Source function library. . /lib/lsb/init-functions VERSION=0.94 ##################################################### # Конфигурирование ##################################################### SERVER_NAME="My Server" #Название сервера screen_name=server #Название screen-сессии path="/home/hlds/server/" #Путь до ROOT-директории сервера hlds_ip=0.0.0.0 #IP сервера hlds_port=27015 #Порт сервера hlds_gametype=cstrike #Тип игры hlds_players=20 #Максимальное количество игроков на сервере hlds_map=de_inferno #Имя первоначальной карты при запуске hlds_pid=server.pid screen_pid=$screen_name-screen.pid hlds_options="-pingboost 3 +exec server.cfg +log on" #Дополнительные параметры запуска use_user=hlds #Имя юзера от которого запускается сервер condebug=1 check_version=0 checker_command="quakestat" #Команда пакета qStat отвечающего за проверку сервера #---------------------------------------------------- # Номер ядра/процессора в линуксе # 2х-ядерные: 0 - первое ядро, 1 - второе ядро # 4x-ядерные: 0 - первое ядро ... 3 - четвертое ядро # По аналогии с другими многоядерными процессорами use_core=0 #---------------------------------------------------- ################# ВНИМАНИЕ ################### # # Строчки ниже, если не знаете, лучше не трогать! # ################# ВНИМАНИЕ ################### RETVAL=0 succes="[\033[1;32m ОК \033[0m]" failed="[\033[1;31m FAIL \033[0m]" status_on="[\033[1;32m Online \033[0m]" status_off="[\033[1;31m Offline \033[0m]" title="\033[1;34m [::]\033[0m" if [ $condebug -eq 1 ]; then hlds_options2="-condebug" fi # Команда screen INTR="taskset -c $use_core /usr/bin/screen -A -m -d -S $screen_name" if [ ! -x $path/hlds_run ]; then printf "\033[22;31m Проверьте права на исполнение hlds_run \033[0m\n" exit 1 fi prestart_check() { if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[1;34m Сервер $SERVER_NAME\033[0m \033[32m(!!) на данный момент УЖЕ работает (!!)\033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit 1 else cd $path rm -rf $path/$screen_pid rm -rf $path/$hlds_pid fi fi } start() { if [ "$check_version" -eq 1 ]; then check_version fi # Проверка престартовая prestart_check echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cd $path $INTR sudo -u $use_user ./hlds_run -game $hlds_gametype +maxplayers $hlds_players +map $hlds_map +ip $hlds_ip +port $hlds_port $hlds_options $hlds_options2 -pidfile $hlds_pid # Поиск и запись пидов процессов сервера и скринв системе ps -ef | grep SCREEN | grep "$screen_name" | grep -v grep | awk '{ print $2}' > $path/$screen_pid printf "$title\033[1;34m Запуск сервера $SERVER_NAME \033[0m\n" printf "\033[1;35m Порт севрера:\033[0m \033[1;36m$hlds_port\033[0m\n" printf "\033[1;35m Привязка к ядру:\033[0m \033[1;36m$use_core\033[0m\n" printf "\033[1;35m Запуск от юзера:\033[0m \033[1;36m$use_user\033[0m\n" printf "\033[1;33m Статус ~> \033[0m" sleep 1 if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf "%53s$succes \n" else printf "%53s$failed \n" fi fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } stop() { if [ "$check_version" -eq 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then # Извлекаем ID процесса из файла и увибаем процессы kill `cat $path/$hlds_pid` kill `cat $path/$screen_pid` sleep 1 rm -rf $path/$screen_pid rm -rf $path/$hlds_pid printf "$title\033[1;31m Остановка $SERVER_NAME \033[0m" printf "%33s$succes \n" else printf "\033[1;34m Невозможно остановить $SERVER_NAME, сервер НЕ запущен \033[0m" printf "%5s$failed \n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } status() { if [ "$check_version" -eq 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "$title\033[1;34m Статус сервера $SERVER_NAME \033[0m\n" printf "\033[1;35m Порт севрера:\033[0m \033[1;36m$hlds_port\033[0m\n" printf "\033[1;35m Привязка к ядру:\033[0m \033[1;36m$use_core\033[0m\n" printf "\033[1;35m Запуск от юзера:\033[0m \033[1;36m$use_user\033[0m\n" printf "\033[1;33m Статус ~> \033[0m" sleep 1 ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf "%49s$status_on \n" else printf "%48s$status_off \n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } console() { if [ "$check_version" -eq 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then printf "$title\033[1;34m Подключение к консоли $SERVER_NAME сервера \033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[36m Для выхода из консоли поочерёдно нажать \033[1;36mCtrl+A, D \033[0m\n" printf "\033[36m Для листинга консоли поочерёдно нажать \033[1;36mCtrl+A, Esc \033[0m\n" printf "\033[36m Для выхода из режима листинга нажать \033[1;36mEsc \033[0m\n" printf "\033[1;31m Внимание!!! По неаккуратности можно положить сервер :D \033[0m\n" echo " Консоль включится через 5 секунд..." sleep 5 /usr/bin/screen -R $screen_name else printf "\033[1;31m Невозможно подключиться к $SERVER_NAME, сервер не запущен \033[0m\n" fi } compile() { if [ "$check_version" -eq 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -d $path/cstrike/addons/amxmodx ]; then printf "\033[32m Компиляция плагинов AmxModX \033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[36m Компилируются исходные файлы (sma), находящиеся в директории {addons/amxmodx/scripting/*.sma} \033[0m\n" printf "\033[36m По завершению компиляции нажмите Q для выхода \033[0m\n" printf "\033[36m Компиляция начнется через 2 секунды. \033[0m\n" sleep 2 cd $path/cstrike/addons/amxmodx/scripting ./compile.sh echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[32m Плагины скомпилированы \033[0m\n" else printf "\033[22;31m Проверьте установлен ли AmxModX (??) \033[0m\n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } check_version() { echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cd $path rm -f version.txt wget http://eqline.ru/project/hlds_init_script/version.txt 1> /dev/null 2>&1 sleep 1 for ver in `cat $path/version.txt` do if [ $VERSION \< $ver ]; then printf "\033[1;31m Доступна новая версия скрипта ( $ver )\033[0m\n" printf "\033[36m Подробнее на форуме eQline.ru: http://forum.eqline.ru \033[0m\n" printf "\033[1;36m Ссылка: http://forum.eqline.ru/topic/361-скрипт-за...-hlds-серверов/ \033[0m\n" else printf "\033[1;36m Ваша версия является последней\033[0m \033[1;34m( Текущая версия: $VERSION ) \033[0m\n" fi break done echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rm -f version.txt sleep 1 } check_logsize() { printf "\033[1;35m Проверка размера .log файлов \033[0m\n" maxlogsize=10485760 if [ -f $path/checker.log ]; then sizeCheckUP=`stat -c%s $path/checker.log` printf "\033[1;36m Размер checker.log:\033[0m \033[1;34m $sizeCheckUP байт\033[0m\n" if [ "$sizeCheckUP" -ge "$maxlogsize" ]; then printf "\033[1;31m Очищаю файл checker.log\033[0m\n" tail -n 50 $path/checker.log > $path/checker.temp mv $path/checker.temp $path/checker.log sleep 1 fi else printf "\033[1;31m Файл checker.log отсутствует\033[0m\n" fi if [ -f $path/cstrike/qconsole.log ]; then sizeQconsole=`stat -c%s $path/cstrike/qconsole.log` printf "\033[1;36m Размер qconsole.log:\033[0m \033[1;34m $sizeQconsole байт\033[0m\n" if [ "$sizeQconsole" -ge "$maxlogsize" ]; then printf "\033[1;31m Очищаю файл qconsole.log\033[0m\n" tail -n 50 $path/cstrike/qconsole.log > $path/cstrike/qconsole.temp mv $path/cstrike/qconsole.temp $path/cstrike/qconsole.log sleep 1 fi else printf "\033[1;31m Файл qconsole.log отсутствует\033[0m\n" fi } checker() { checktag="[HLDS-CheckUP]" checkresponse=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep response` if [ -n "$checkresponse" ]; then printf "\033[1;37m$checktag\033[0m $SERVER_NAME \033[31m*[No response]*\033[0m\n" # echo Отсылаем почту cd $path time=`date +%X` date=`date +%D` inlog=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep response` printf "[$time - $date] *[No response]* $inlog\n" >> checker.log stop sleep 2 start sleep 1 echo ----------------ATTANTION---------------- >> checker.log printf "StartUP $SERVER_NAME:" >> checker.log ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf " *[OK]* \n" >> checker.log else printf " *[FAILED]* \n" >> checker.log fi echo ----------------------------------------- >> checker.log exit 1 fi checkdown=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep DOWN` if [ -n "$checkdown" ]; then printf "\033[1;37m$checktag\033[0m $SERVER_NAME \033[31m*[DOWN]*\033[0m\n" # echo Отсылаем почту cd $path time=`date +%X` date=`date +%D` inlog=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep DOWN` printf "[$time - $date] *[DOWN]* $inlog\n" >> checker.log stop sleep 2 start sleep 1 echo ----------------ATTANTION---------------- >> checker.log printf "StartUP $SERVER_NAME:" >> checker.log ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf " *[OK]* \n" >> checker.log else printf " *[FAILED]* \n" >> checker.log fi echo ----------------------------------------- >> checker.log exit 1 fi checkup=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep cstrike` if [ -n "$checkup" ]; then printf "\033[1;37m$checktag\033[0m $SERVER_NAME \033[32m*[OK]*\033[0m\n" cd $path time=`date +%X` date=`date +%D` inlog=`quakestat -P -a2s $hlds_ip:$hlds_port | grep cstrike` printf "[$time - $date] *[OK]* $inlog\n" >> checker.log exit 1 fi } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 2 start ;; status) status ;; console) console ;; compile) compile ;; update) check_version ;; checker) checker ;; logsize) check_logsize ;; *) echo "Usage: $0 {start|stop|restart|status|console|compile|update|checker|logsize}" exit 1 esac exit 0 ps.В этой теме оригинал скрипта отличный от этой темы.-> https://c-s.net.ua/forum/topic27162.html |
Cracky, Flash | ||
| 26.1.2011, 17:18 | ticrate | У меня вот такой скрипт запуска. Было так #!/bin/bash ### BEGIN INIT INFO # Provides: hlds # Required-Start: $syslog $local_fs $network # Required-Stop: $syslog $local_fs $network # Should-Start: $remote_fs $named # Should-Stop: $remote_fs $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start HLDS Server # Description: HLDS Start Script # # author: LeXiKoN http://eqline.ru # version: 0.92 # ### END INIT INFO # Source function library. . /sbin/functions.sh VERSION=0.92 ##################################################### # Конфигурирование ##################################################### SERVER_NAME="Server Classic" screen_name=Server_Classic path="hlds_classic" hlds_ip= hlds_port= hlds_gametype=cstrike hlds_players=32 hlds_map=de_dust2 hlds_pid=server.pid screen_pid=$screen_name-screen.pid hlds_options="-conedebug -pingboost 1 +exec server.cfg -secure -nomaster +sv_lan 0" use_user=root condebug=1 check_version=0 checker_command="quakestat" use_core=0 #---------------------------------------------------- RETVAL=0 succes="[\033[1;32m ОК \033[0m]" failed="[\033[1;31m FAIL \033[0m]" status_on="[\033[1;32m Online \033[0m]" status_off="[\033[1;31m Offline \033[0m]" title="\033[1;34m [::]\033[0m" if [ $condebug = 1 ]; then hlds_options2="-condebug" fi # Команда screen INTR="taskset -c $use_core /usr/bin/screen -A -m -d -S $screen_name" if [ ! -x $path/hlds_run ]; then printf "\033[22;31m Проверьте права на исполнение hlds_run \033[0m\n" exit 1 fi prestart_check() { if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[1;34m Сервер $SERVER_NAME\033[0m \033[32m(!!) на данный момент УЖЕ работает (!!)\033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit 1 else cd $path rm -rf $path/$screen_pid rm -rf $path/$hlds_pid fi fi } start() { if [ $check_version = 1 ]; then check_version fi # Проверка престартовая prestart_check echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cd $path $INTR ./hlds_run -game $hlds_gametype +maxplayers $hlds_players +map $hlds_map +ip $hlds_ip +port $hlds_port $hlds_options $hlds_options2 -pidfile $hlds_pid # Поиск и запись пидов процессов сервера и скринв системе ps -ef | grep SCREEN | grep "$screen_name" | grep -v grep | awk '{ print $2}' > $path/$screen_pid printf "$title\033[1;34m Запуск сервера $SERVER_NAME \033[0m\n" printf "\033[1;35m Порт севрера:\033[0m \033[1;36m$hlds_port\033[0m\n" printf "\033[1;35m Привязка к ядру:\033[0m \033[1;36m$use_core\033[0m\n" printf "\033[1;35m Запуск от юзера:\033[0m \033[1;36m$use_user\033[0m\n" printf "\033[1;33m Статус ~> \033[0m" sleep 1 if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf "%53s$succes \n" else printf "%53s$failed \n" fi fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } stop() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then # Извлекаем ID процесса из файла и увибаем процессы kill `cat $path/$hlds_pid` kill `cat $path/$screen_pid` sleep 1 rm -rf $path/$screen_pid rm -rf $path/$hlds_pid printf "$title\033[1;31m Остановка $SERVER_NAME \033[0m" printf "%33s$succes \n" else printf "\033[1;34m Невозможно остановить $SERVER_NAME, сервер НЕ запущен \033[0m" printf "%5s$failed \n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } status() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "$title\033[1;34m Статус сервера $SERVER_NAME \033[0m\n" printf "\033[1;35m Порт севрера:\033[0m \033[1;36m$hlds_port\033[0m\n" printf "\033[1;35m Привязка к ядру:\033[0m \033[1;36m$use_core\033[0m\n" printf "\033[1;35m Запуск от юзера:\033[0m \033[1;36m$use_user\033[0m\n" printf "\033[1;33m Статус ~> \033[0m" sleep 1 ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf "%49s$status_on \n" else printf "%48s$status_off \n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } console() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then printf "$title\033[1;34m Подключение к консоли $SERVER_NAME сервера \033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[36m Для выхода из консоли поочерёдно нажать \033[1;36mCtrl+A, D \033[0m\n" printf "\033[36m Для листинга консоли поочерёдно нажать \033[1;36mCtrl+A, Esc \033[0m\n" printf "\033[36m Для выхода из режима листинга нажать \033[1;36mEsc \033[0m\n" printf "\033[1;31m Внимание!!! По неаккуратности можно положить сервер :D \033[0m\n" echo " Консоль включится через 5 секунд..." sleep 5 /usr/bin/screen -R $screen_name else printf "\033[1;31m Невозможно подключиться к $SERVER_NAME, сервер не запущен \033[0m\n" fi } compile() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -d $path/cstrike/addons/amxmodx ]; then printf "\033[32m Компиляция плагинов AmxModX \033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[36m Компилируются исходные файлы (sma), находящиеся в директории {addons/amxmodx/scripting/*.sma} \033[0m\n" printf "\033[36m По завершению компиляции нажмите Q для выхода \033[0m\n" printf "\033[36m Компиляция начнется через 2 секунды. \033[0m\n" sleep 2 cd $path/cstrike/addons/amxmodx/scripting ./compile.sh echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[32m Плагины скомпилированы \033[0m\n" else printf "\033[22;31m Проверьте установлен ли AmxModX (??) \033[0m\n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } check_version() { echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cd $path rm -f version.txt wget http://eqline.ru/project/hlds_init_script/version.txt 1> /dev/null 2>&1 sleep 1 for ver in `cat $path/version.txt` do if [ $VERSION \< $ver ]; then printf "\033[1;31m Доступна новая версия скрипта ( $ver )\033[0m\n" printf "\033[36m Подробнее на форуме eQline.ru: http://forum.eqline.ru \033[0m\n" printf "\033[1;36m Ссылка: http://forum.eqline.ru/topic/361-скрипт-за...-hlds-серверов/ \033[0m\n" else printf "\033[1;36m Ваша версия является последней\033[0m \033[1;34m( Текущая версия: $VERSION ) \033[0m\n" fi break done echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rm -f version.txt sleep 1 } checker() { checktag="[HLDS-CheckUP]" checkdown=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep DOWN` if [ -n "$checkdown" ]; then printf "\033[1;37m$checktag\033[0m $SERVER_NAME \033[31m*[DOWN]*\033[0m\n" # echo Отсылаем почту cd $path time=`date +%X` date=`date +%D` inlog=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep DOWN` printf "[$time - $date] *[DOWN]* $inlog\n" >> checker.log stop sleep 2 start sleep 1 echo ----------------ATTANTION---------------- >> checker.log printf "StartUP $SERVER_NAME:" >> checker.log ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf " *[OK]* \n" >> checker.log else printf " *[FAILED]* \n" >> checker.log fi echo ----------------------------------------- >> checker.log exit 1 fi checkup=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep cstrike` if [ -n "$checkup" ]; then printf "\033[1;37m$checktag\033[0m $SERVER_NAME \033[32m*[OK]*\033[0m\n" cd $path time=`date +%X` date=`date +%D` inlog=`quakestat -P -a2s $hlds_ip:$hlds_port | grep cstrike` printf "[$time - $date] *[OK]* $inlog\n" >> checker.log exit 1 fi } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 2 start ;; status) status ;; console) console ;; compile) compile ;; checkUpdate) check_version ;; checker) checker ;; *) echo "Usage: $0 {start|stop|restart|status|console|compile|checkUpdate|checker}" exit 1 esac А станет вот так? #!/bin/bash ### BEGIN INIT INFO # Provides: hlds # Required-Start: $syslog $local_fs $network # Required-Stop: $syslog $local_fs $network # Should-Start: $remote_fs $named # Should-Stop: $remote_fs $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start HLDS Server # Description: HLDS Start Script # # author: LeXiKoN http://eqline.ru # version: 0.92 # ### END INIT INFO # Source function library. . /sbin/functions.sh VERSION=0.92 ##################################################### # Конфигурирование ##################################################### SERVER_NAME="Server Classic" screen_name=Server_Classic path="hlds_classic" hlds_ip= hlds_port= hlds_gametype=cstrike hlds_players=32 hlds_map=de_dust2 hlds_pid=server.pid screen_pid=$screen_name-screen.pid hlds_options="-conedebug -pingboost 3 +exec server.cfg +sys_ticrate 1100 -secure -nomaster +sv_lan 0" use_user=root condebug=1 check_version=0 checker_command="quakestat" use_core=0 #---------------------------------------------------- RETVAL=0 succes="[\033[1;32m ОК \033[0m]" failed="[\033[1;31m FAIL \033[0m]" status_on="[\033[1;32m Online \033[0m]" status_off="[\033[1;31m Offline \033[0m]" title="\033[1;34m [::]\033[0m" if [ $condebug = 1 ]; then hlds_options2="-condebug" fi # Команда screen INTR="taskset -c $use_core /usr/bin/screen -A -m -d -S $screen_name" if [ ! -x $path/hlds_run ]; then printf "\033[22;31m Проверьте права на исполнение hlds_run \033[0m\n" exit 1 fi prestart_check() { if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[1;34m Сервер $SERVER_NAME\033[0m \033[32m(!!) на данный момент УЖЕ работает (!!)\033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit 1 else cd $path rm -rf $path/$screen_pid rm -rf $path/$hlds_pid fi fi } start() { if [ $check_version = 1 ]; then check_version fi # Проверка престартовая prestart_check echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cd $path $INTR nice -15 ./hlds_run -game $hlds_gametype +maxplayers $hlds_players +map $hlds_map +ip $hlds_ip +port $hlds_port $hlds_options $hlds_options2 -pidfile $hlds_pid # Поиск и запись пидов процессов сервера и скринв системе ps -ef | grep SCREEN | grep "$screen_name" | grep -v grep | awk '{ print $2}' > $path/$screen_pid printf "$title\033[1;34m Запуск сервера $SERVER_NAME \033[0m\n" printf "\033[1;35m Порт севрера:\033[0m \033[1;36m$hlds_port\033[0m\n" printf "\033[1;35m Привязка к ядру:\033[0m \033[1;36m$use_core\033[0m\n" printf "\033[1;35m Запуск от юзера:\033[0m \033[1;36m$use_user\033[0m\n" printf "\033[1;33m Статус ~> \033[0m" sleep 1 if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf "%53s$succes \n" else printf "%53s$failed \n" fi fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } stop() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then # Извлекаем ID процесса из файла и увибаем процессы kill `cat $path/$hlds_pid` kill `cat $path/$screen_pid` sleep 1 rm -rf $path/$screen_pid rm -rf $path/$hlds_pid printf "$title\033[1;31m Остановка $SERVER_NAME \033[0m" printf "%33s$succes \n" else printf "\033[1;34m Невозможно остановить $SERVER_NAME, сервер НЕ запущен \033[0m" printf "%5s$failed \n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } status() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "$title\033[1;34m Статус сервера $SERVER_NAME \033[0m\n" printf "\033[1;35m Порт севрера:\033[0m \033[1;36m$hlds_port\033[0m\n" printf "\033[1;35m Привязка к ядру:\033[0m \033[1;36m$use_core\033[0m\n" printf "\033[1;35m Запуск от юзера:\033[0m \033[1;36m$use_user\033[0m\n" printf "\033[1;33m Статус ~> \033[0m" sleep 1 ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf "%49s$status_on \n" else printf "%48s$status_off \n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } console() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then printf "$title\033[1;34m Подключение к консоли $SERVER_NAME сервера \033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[36m Для выхода из консоли поочерёдно нажать \033[1;36mCtrl+A, D \033[0m\n" printf "\033[36m Для листинга консоли поочерёдно нажать \033[1;36mCtrl+A, Esc \033[0m\n" printf "\033[36m Для выхода из режима листинга нажать \033[1;36mEsc \033[0m\n" printf "\033[1;31m Внимание!!! По неаккуратности можно положить сервер :D \033[0m\n" echo " Консоль включится через 5 секунд..." sleep 5 /usr/bin/screen -R $screen_name else printf "\033[1;31m Невозможно подключиться к $SERVER_NAME, сервер не запущен \033[0m\n" fi } compile() { if [ $check_version = 1 ]; then check_version fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ -d $path/cstrike/addons/amxmodx ]; then printf "\033[32m Компиляция плагинов AmxModX \033[0m\n" echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[36m Компилируются исходные файлы (sma), находящиеся в директории {addons/amxmodx/scripting/*.sma} \033[0m\n" printf "\033[36m По завершению компиляции нажмите Q для выхода \033[0m\n" printf "\033[36m Компиляция начнется через 2 секунды. \033[0m\n" sleep 2 cd $path/cstrike/addons/amxmodx/scripting ./compile.sh echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf "\033[32m Плагины скомпилированы \033[0m\n" else printf "\033[22;31m Проверьте установлен ли AmxModX (??) \033[0m\n" fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } check_version() { echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cd $path rm -f version.txt wget http://eqline.ru/project/hlds_init_script/version.txt 1> /dev/null 2>&1 sleep 1 for ver in `cat $path/version.txt` do if [ $VERSION \< $ver ]; then printf "\033[1;31m Доступна новая версия скрипта ( $ver )\033[0m\n" printf "\033[36m Подробнее на форуме eQline.ru: http://forum.eqline.ru \033[0m\n" printf "\033[1;36m Ссылка: http://forum.eqline.ru/topic/361-скрипт-за...-hlds-серверов/ \033[0m\n" else printf "\033[1;36m Ваша версия является последней\033[0m \033[1;34m( Текущая версия: $VERSION ) \033[0m\n" fi break done echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rm -f version.txt sleep 1 } checker() { checktag="[HLDS-CheckUP]" checkdown=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep DOWN` if [ -n "$checkdown" ]; then printf "\033[1;37m$checktag\033[0m $SERVER_NAME \033[31m*[DOWN]*\033[0m\n" # echo Отсылаем почту cd $path time=`date +%X` date=`date +%D` inlog=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep DOWN` printf "[$time - $date] *[DOWN]* $inlog\n" >> checker.log stop sleep 2 start sleep 1 echo ----------------ATTANTION---------------- >> checker.log printf "StartUP $SERVER_NAME:" >> checker.log ch=`ps -ef | grep SCREEN | grep $screen_name` if [ -n "$ch" ]; then printf " *[OK]* \n" >> checker.log else printf " *[FAILED]* \n" >> checker.log fi echo ----------------------------------------- >> checker.log exit 1 fi checkup=`$checker_command -P -a2s $hlds_ip:$hlds_port | grep cstrike` if [ -n "$checkup" ]; then printf "\033[1;37m$checktag\033[0m $SERVER_NAME \033[32m*[OK]*\033[0m\n" cd $path time=`date +%X` date=`date +%D` inlog=`quakestat -P -a2s $hlds_ip:$hlds_port | grep cstrike` printf "[$time - $date] *[OK]* $inlog\n" >> checker.log exit 1 fi } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 2 start ;; status) status ;; console) console ;; compile) compile ;; checkUpdate) check_version ;; checker) checker ;; *) echo "Usage: $0 {start|stop|restart|status|console|compile|checkUpdate|checker}" exit 1 esac |
Grape Fruit | ||
| 1.10.2010, 19:16 | Флуд атака видимо?! | Цитата старый хлам от румынских дибилов )))) Лишним не будет. Где то все же советуют.На крайняк, почему бы не поставить =)) |
aleshqa | ||
| 1.10.2010, 14:25 | Флуд атака видимо?! | 1. Нет 2. Да 3. Нет Должно блокировать его. Ставь еще AntiCS DOS By Shocker если у тебя Windows. |
aleshqa | ||
| 29.9.2010, 23:12 | Флуд атака видимо?! | Цитата L 09/25/2010 - 17:13:19: "moi skype gansig1<23><STEAM_ID_LAN><>" connected, address "178.129.78.142:27005" Знаю я такого. Он меня тоже досил. Нубик он и все. Принцип доса его простой, заходит на сервер, пускает спам, делаешь рестарт сервера, он пропадает и больше не досит до тех пор, пока сам в ручную не запустит опять. Короче говоря разводить хотел. Я ему сказал удачи, в итоге забанил его к чертовой матери. =)) Больше не тревожит. Любые виды банов через игру и через функции amxmodx'a не помогут, так как он подключается в режиме fake игрока. Его нету в списках, а соответственно и бан не дать в игре ему ни как. Баньте подсеть ему. 178.129.0.0 Если сидите на WinXP ставьте Outpost Firewall Pro 2009 там и блочить. Если линукс, то там немного иначе. =) |
aleshqa | ||
| 21.8.2010, 19:53 | Скрипт запуска. | Я найду дела поважнее споров с детьми. Больше всего меня убивало когда на мой ответ другого человека, тот пишет подобную ахинею "споры с детьми", " ты ребенок", "иди учись в школу" и так далее... Я то не обращаю внимание на это, но просто поражало то, что человек не зная меня вообще, пишет что я ребенок...так поступает только глупый и полный гонора, в данном случае парень. Приятного чаепития, не поперхнись умник. |
_Skyline, Саша | ||
| 28.4.2010, 2:17 | Csfile.info Anti-cheat V1.23 Release Fixed 3 (06.01.2011) | Надо его (-)>C-r-A-c-K...,'а) спонсировать, тогда и версия выйдет быстрее. =)) Работаешь в свое удовольствие это одно, а когда еще за это и деньги идут так все и быстрее поедет =))) А античит хороший. Единственно (возможно мой глюк) пинг повышался не значительно.... |
-)>C-r-A-c-K<(-, SilverFire | ||