Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

14 страниц V  « 3 4 5 ... 12 13 »

Удобный скрипт запуска сервера кс :)

Статус пользователя 330863
сообщение 24.2.2011, 22:02
Сообщение #61


Стаж: 14 лет

Сообщений: 4358
Благодарностей: 1079
Полезность: 497

Hitmaaaaan,
ты можеш выполнить то что я попросил ?

empy,
возможно сервер незапускаеться толком ,или чтото ему мешает ,я так думаю
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя empy
сообщение 24.2.2011, 22:28
Сообщение #62
Стаж: 16 лет

Сообщений: 219
Благодарностей: 10
Полезность: < 0

Ну так что делать то?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Hitmaaaaan
сообщение 25.2.2011, 18:06
Сообщение #63


Стаж: 13 лет

Сообщений: 178
Благодарностей: 20
Полезность: 99

Цитата(330863 @ 24.2.2011, 22:02) *
Hitmaaaaan,
ты можеш выполнить то что я попросил ?

server_pub
#!/bin/sh
#
# authors: LeXiKoN & Puma http://eqline.ru & https://c-s.net.ua
# version: 1.09
# Source function library.
#. /lib/lsb/init-functions

VERSION="1.09"

#####################################################
# Configuration
#####################################################

server_name="Public Server" #Название сервера
screen_name="test" #Название screen-сессии
use_user="h****" #Имя юзера от которого запускается сервер
path="/home/hitman/hlds/hlds/hlds_pub" #Путь до ROOT-директории сервера (без /в конце)
hlds_ip="178.74.232.221" #IP сервера ,не ставить 0.0.0.0
hlds_port="27015" #Порт сервера
hlds_players="25" #Максимальное количество игроков на сервере
hlds_map="de_dust2_2x2" #Имя первоначальной карты при запуске
hlds_options1="-pingboost 1 -debug +rcon_password *****8 +sv_lan 0 -noipx -insecure " #Дополнительные параметры запуска
condebug="1" #Включить логи в файле qconsole.log из папки cstrike
priority="-10" #Приоритет для сервера (-20 - Высокий ;20 - Низкий)
usecore="1" #Привязка к процессору (0, 1, 2, 3)
allcore="0,1" #Пропишите числа ядров ,начиная с 0 (0,1 - двухядерный)
hlds_pid="$screen_name.pid" #Имя pid файла сервера
screen_pid="$screen_name-screen.pid" #Имя pid файла screen-a
clear_logs="0" # очишать лог файлы при запуске сервера через скрипт?
clear_cache="0" # очишать кэши системы перед запуском сервера? # работает только под рутом

start_cmd="/usr/bin/screen -AmdS $screen_name"
checker_cmd="$path/quakestat" #Команда пакета qStat отвечающего за проверку сервера
hlds_pid_num=`cat $path/$hlds_pid` #Определяет число pid от сервака

#####################################################
# End of configuration
#####################################################

succes="[ ОК ]"
failed="[ FAIL ]"
status_on="[ Online ]"
status_off="[ Offline ]"
title="[$hlds_ip:$hlds_port]"

if [ $condebug = 1 ]; then
hlds_options2="-condebug"
fi

if [ ! -x $path/hlds_run ]; then
printf "$title Check run privileges of hlds_run"
exit 1
fi

clear_logs() {
if [ $use_user == root ]; then
rm -f $path/debug.log
rm -f $path/cstrike/qconsole.log
rm -f $path/cstrike/logs/*.log
rm -fr $path/cstrike/addons/amxmodx/logs/*.log
else
sudo -u $use_user rm -f $path/debug.log
sudo -u $use_user rm -f $path/cstrike/qconsole.log
sudo -u $use_user rm -f $path/cstrike/logs/*.log
sudo -u $use_user rm -fr $path/cstrike/addons/amxmodx/logs/*.log
fi
printf "$title Log Cleared\n"
}

prestart_check() {
if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then
ch=`ps -ef | grep SCREEN | grep $hlds_port`
if [ -n "$ch" ]; then
printf "$title $server_name already its working (!!)\n"
exit 1
else
cd $path
rm -rf $path/$screen_pid
rm -rf $path/$hlds_pid
fi
fi
}

start() {
prestart_check
cd $path
if [ $clear_logs == 1 ]; then
clear_logs
fi
if [ $use_user == root ]; then
if [ $clear_cache == 1 ]; then
echo 3 > /proc/sys/vm/drop_caches
fi
$start_cmd ./hlds_run -game cstrike +maxplayers $hlds_players +map $hlds_map +ip $hlds_ip +port $hlds_port $hlds_options1 $hlds_options2 -pidfile $hlds_pid
ps -ef | grep SCREEN | grep "$hlds_port" | grep -v grep | awk '{ print $2}' > $path/$screen_pid
printf "$title Starting $server_name\n"
sleep 1
hlds_pid_num=`cat $path/$hlds_pid`
taskset -pc $usecore $hlds_pid_num
renice -n $priority -p $hlds_pid_num
else
$start_cmd sudo -u $use_user ./hlds_run -game cstrike +maxplayers $hlds_players +map $hlds_map +ip $hlds_ip +port $hlds_port $hlds_options1 $hlds_options2 -pidfile $hlds_pid
ps -ef | grep SCREEN | grep "$hlds_port" | grep -v grep | awk '{ print $2}' > $path/$screen_pid
printf "$title Starting $server_name\n"
sleep 1
hlds_pid_num=`cat $path/$hlds_pid`
sudo taskset -pc $usecore $hlds_pid_num
sudo renice -n $priority -p $hlds_pid_num
fi
}

stop() {
if [ $use_user == root ]; then
if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then
kill `cat $path/$screen_pid`
sleep 1
rm -rf $path/$screen_pid
rm -rf $path/$hlds_pid
printf "$title Stopping of $server_name\n"
else
printf "$title Cannot stop $server_name, server not started\n"
fi
else
if [ -f $path/$hlds_pid ] && [ -f $path/$screen_pid ]; then
sudo -u $use_user kill `cat $path/$screen_pid`
sleep 1
sudo -u $use_user rm -rf $path/$screen_pid
sudo -u $use_user rm -rf $path/$hlds_pid
printf "$title Stopping of $server_name\n"
else
printf "$title Cannot stop $server_name, server not started\n"
fi
fi
}

status() {
printf "$title Status of $server_name\n\n"
if [ $use_user == root ]; then
$checker_cmd -retry 10 -interval 2 -a2s $hlds_ip:$hlds_port
else
sudo -u $use_user $checker_cmd -retry 10 -interval 2 -a2s $hlds_ip:$hlds_port
fi
}

console() {
if [ -f $path/$screen_pid ]; then
printf "$title Connecting to $server_name\n"
printf " For exit from console press Ctrl+A,D\n"
printf " Dont press Ctrl+C\n"
printf " Please wait...\n"
sleep 1
if [ $use_user == root ]; then
/usr/bin/screen -wipe
/usr/bin/screen -d `cat $path/$screen_pid`
/usr/bin/screen -R `cat $path/$screen_pid`
else
sudo -u $use_user /usr/bin/screen -wipe
sudo -u $use_user /usr/bin/screen -d `cat $path/$screen_pid`
sudo -u $use_user /usr/bin/screen -R `cat $path/$screen_pid`
fi
else
printf "$title Cannot connect to $server_name, server not running"
fi
}

checker() {
checktag="[HLDS-Checker]"
checkdown=`$checker_cmd -retry 10 -interval 2 -a2s $hlds_ip:$hlds_port | grep DOWN`
checknoresp=`$checker_cmd -retry 10 -interval 2 -a2s $hlds_ip:$hlds_port | grep response`
checkup=`$checker_cmd -retry 10 -interval 2 -a2s $hlds_ip:$hlds_port | grep cstrike`
hlds_pid_num=`cat $path/$hlds_pid`
check_allcore=`sudo taskset -pc "$hlds_pid_num" | grep $allcore`
check_usecore=`sudo taskset -pc $hlds_pid_num | grep $usecore`
time=`date +%X`
date=`date +%D`
if [ -n "$checkdown" ]; then
printf "$checktag $server_name *[DOWN]*\n"
printf "[$time - $date] *[DOWN]* $checkdown\n" >> $path/checker.log
stop
sleep 1
start
sleep 1
echo ----------------ATTENTION---------------- >> $path/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 ----------------------------------------- >> $path/checker.log
exit 1
fi
if [ -n "$checknoresp" ]; then
printf "$checktag $server_name *[NO RESPONSE]*\n"
printf "[$time - $date] *[NO RESPONSE]* $checknoresp\n" >> $path/checker.log
stop
sleep 1
start
sleep 1
echo ----------------ATTENTION---------------- >> $path/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 ----------------------------------------- >> $path/checker.log
exit 1
fi
if [ -n "$checkup" ]; then
printf "$checktag $server_name *[OK]*\n"
printf "[$time - $date] *[OK]* $checkup\n" >> $path/checker.log
fi
if [ $usecore == $allcore ]; then
if [ $use_user == root ]; then
renice -n $priority -p $hlds_pid_num
else
sudo renice -n $priority -p $hlds_pid_num
fi
exit 1
else
if [ -n "$check_allcore" ]; then
printf "$checktag *[BAD PRIORITY]*\n"
if [ $use_user == root ]; then
taskset -pc $usecore $hlds_pid_num
renice -n $priority -p $hlds_pid_num
else
sudo taskset -pc $usecore $hlds_pid_num
sudo renice -n $priority -p $hlds_pid_num
fi
printf "[$time - $date] *[PRIORITY & AFFINITY RESETED]*\n" >> $path/checker.log
exit 1
fi
if [ -n "$check_usecore" ]; then
printf "$checktag *[GOOD PRIORITY]*\n"
exit 1
fi
fi
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 2
start
;;
status)
status
;;
console)
console
;;
checker)
checker
;;
*)
echo "How to use: $0 {start|stop|restart|status|console|checker}"
start
exit 1
esac

вот
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя empy
сообщение 26.2.2011, 20:54
Сообщение #64
Стаж: 16 лет

Сообщений: 219
Благодарностей: 10
Полезность: < 0

если файрволом закрыты входящие подключения iptables -P INPUT DROP
то чекер перезагружает сервер если он дажэе и не упал

а если открыть все входящие iptables -P INPUT ACCEPT
то чекер работает как надо


что делать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 330863
сообщение 26.2.2011, 22:27
Сообщение #65


Стаж: 14 лет

Сообщений: 4358
Благодарностей: 1079
Полезность: 497

empy,
а ты правилом iptables -P INPUT DROP закрываеш вобше доступ к нему ,к чему такое тугое правило ? =//

Hitmaaaaan,
странно
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя empy
сообщение 26.2.2011, 22:32
Сообщение #66
Стаж: 16 лет

Сообщений: 219
Благодарностей: 10
Полезность: < 0

c iptables разобраться сам не смог
поэтому воспользовался готовым конфигом

конф


#!/bin/bash

ipt=iptables

#интерфейсы
WAN_IF="ppp0"
LO_IF="lo"
LOOPBACK="127.0.0.0/8"

# входящие порты
PORT_WAN_IN_TCP="3306"
PORT_WAN_IN_UDP="53,67,68"

CS_PORT="27010,27012,27014,27027"

modprobe ip_conntrack
modprobe ip_conntrack_ftp


#дропаем и отчищаем все цепочки
$ipt -F
$ipt -F INPUT
$ipt -F FORWARD
$ipt -F OUTPUT
$ipt -F -t nat
$ipt -F -t mangle
$ipt -F -t filter
$ipt -t nat -X
$ipt -t mangle -X
$ipt -t filter -X

# задаём правила по умолчанию
$ipt -P INPUT DROP
$ipt -P OUTPUT ACCEPT
$ipt -P FORWARD ACCEPT

#проверка трафика на ошибки в протоколах (фильтрация эксплуатируемых уязвимостей)
$ipt -N common-check
$ipt -F common-check
# Отбрасываем невалидные пакты
$ipt -A common-check -m state --state INVALID -j DROP # дропает ошибочные пакеты не относящиеся к существующим соединениям
$ipt -A common-check -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
$ipt -A common-check -p tcp ! --syn -m state --state NEW -j DROP #дропаем пакеты помеченые как новый, но без флажка SYN
$ipt -A common-check -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
$ipt -A common-check -p tcp --tcp-flags ALL ALL -j DROP
$ipt -A common-check -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
$ipt -A common-check -p tcp --tcp-flags ALL NONE -j DROP
$ipt -A common-check -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$ipt -A common-check -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

# разрешаем трафик образованный от уже существующих и установленных соединений
$ipt -N statefull
$ipt -F statefull
$ipt -A statefull -m state --state ESTABLISHED,RELATED -j ACCEPT

# разрешаем только определённый тип icmp
$ipt -N icmp_packets
$ipt -F icmp_packets
$ipt -A icmp_packets -p icmp --icmp-type 0 -j ACCEPT
$ipt -A icmp_packets -p icmp --icmp-type 3 -j ACCEPT
$ipt -A icmp_packets -p icmp --icmp-type 8 -j ACCEPT
$ipt -A icmp_packets -p icmp --icmp-type 11 -j ACCEPT

# фильтруем брутфорс
$ipt -N ssh_brute
$ipt -F ssh_brute
$ipt -A ssh_brute -m state --state NEW -m recent --set --name SSH -j ACCEPT #В этом правиле мы устанавливаем метку на SSH пакеты
$ipt -A ssh_brute -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j LOG --log-prefix "SSH_BRUTFORCE: "
$ipt -A ssh_brute -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j REJECT

#защита cs
$ipt -N cs_flood
$ipt -F cs_flood
$ipt -A cs_flood -m length --length 33:1420 -m conntrack --ctstate ESTABLISHED -m hashlimit --hashlimit-upto 101/sec --hashlimit-burst 101 --hashlimit-mode srcip,srcport,dstip,dstport --hashlimit-name CStrike_ACCEPT -j ACCEPT
$ipt -A cs_flood -m length --length 51:53 -m conntrack --ctstate NEW -m hashlimit --hashlimit-upto 1/sec --hashlimit-burst 3 --hashlimit-mode srcip,srcport,dstip,dstport --hashlimit-name CStrike_new -j ACCEPT
$ipt -A cs_flood -j DROP

# цепочка для прочих правил входящего трафика. здесь можно отфильтровать, разрешить и т.п.
$ipt -N in-wan
$ipt -F in-wan
$ipt -A in-wan -p tcp --dport ssh -j ssh_brute
$ipt -A in-wan -p udp -m multiport --dport $CS_PORT -j cs_flood
$ipt -A in-wan -p tcp -m multiport --sport $PORT_WAN_IN_TCP -j ACCEPT
$ipt -A in-wan -p udp -m multiport --sport $PORT_WAN_IN_UDP -j ACCEPT


$ipt -A INPUT -p tcp -j common-check #проверяем на ошибки...
$ipt -A INPUT -p icmp -j icmp_packets # фильтруем входящие по icmp
$ipt -A INPUT -j statefull # разрешаем est и rel трафик
$ipt -A INPUT -i $WAN_IF -j in-wan # все входящие, что не отсеяли проверки
$ipt -A INPUT -i $LO_IF -d $LOOPBACK -j ACCEPT # трафик "петли"





# output здесь не имеет смысла писать, если только не хочется что либо закрыть, потому что по умолчанию на выход всё разрешено.



-----------------------------------------

вроде как сделал, тольок не знаю правильно ли, но работает)

iptables -I INPUT -s мои_ип -p tcp --dport порт_сервера_который_чекается -j ACCEPT
iptables -I INPUT -s мои_ип -p udp --dport порт_сервера_который_чекается -j ACCEPT


iptables -I INPUT -s мои_ип -j ACCEPT - ну или так
на сколько я понимаю это не вредит другим правилам iptables?

Отредактировал: empy, - 26.2.2011, 23:39
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 330863
сообщение 27.2.2011, 7:22
Сообщение #67


Стаж: 14 лет

Сообщений: 4358
Благодарностей: 1079
Полезность: 497

empy,
iptables -A INPUT -p udp -m udp --dport 27015 -j ACCEPT
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя empy
сообщение 27.2.2011, 10:47
Сообщение #68
Стаж: 16 лет

Сообщений: 219
Благодарностей: 10
Полезность: < 0

Цитата(330863 @ 27.2.2011, 8:22) *
empy,
iptables -A INPUT -p udp -m udp --dport 27015 -j ACCEPT


так не работает
а если за место 27015 поставить порт сервера, то все работает, но тогда от многих правил прописанных у меня в конфиге на сколько я понимаю нету толка.

Отредактировал: empy, - 27.2.2011, 10:48
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 330863
сообщение 27.2.2011, 13:02
Сообщение #69


Стаж: 14 лет

Сообщений: 4358
Благодарностей: 1079
Полезность: 497

empy,
учи iptables лучше и делай себе конфиг с нуля :)
а я выставил в правиле с выше 27015 не просто так ,а как пример ,если сервак на 27015 запушен



Hitmaaaaan,
проверь по этому путю если у тебя там есть сервак: /home/hitman/hlds/hlds/hlds_pub
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя papapapa
сообщение 18.3.2011, 12:50
Сообщение #70
Стаж: 14 лет

Сообщений: 16
Благодарностей: 2
Полезность: 0

как сделать чтобы при перезагрузке linux запускался этот скрипт в общем ну и серв..так вроде всё работает и почему в скрипте поставил priority="-15" а запускается всё равно с -10......???
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 330863
сообщение 18.3.2011, 12:52
Сообщение #71


Стаж: 14 лет

Сообщений: 4358
Благодарностей: 1079
Полезность: 497

papapapa,
запуская от рута можно приоритет больше чем -10 тоесть и -15
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя papapapa
сообщение 18.3.2011, 13:31
Сообщение #72
Стаж: 14 лет

Сообщений: 16
Благодарностей: 2
Полезность: 0

с приоритетом разобрался, а как сделать то ,чтобы при включение или перезагрузке компа скрипт запускался !?

всё разобрался, в автозапуск команду добавил :)

Отредактировал: papapapa, - 18.3.2011, 13:39
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя нуб
сообщение 19.3.2011, 0:11
Сообщение #73


Стаж: 14 лет

Сообщений: 1966
Благодарностей: 580
Полезность: 37

Что в скрипте надо поправить, чтобы valve серв запускался?
А то он все в папку cstrike залезть хочет....который нету :)


!
Аккаунт пользователя заблокирован до: 26.8.2285, 9:17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 330863
сообщение 19.3.2011, 10:10
Сообщение #74


Стаж: 14 лет

Сообщений: 4358
Благодарностей: 1079
Полезность: 497

нуб,
-game cstrike >> -game valve ,строку иши сам %)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя нуб
сообщение 19.3.2011, 12:37
Сообщение #75


Стаж: 14 лет

Сообщений: 1966
Благодарностей: 580
Полезность: 37

330863,
Буэ, лучше папки перекину)
там в таком глубоком табе строчки есть... :)


!
Аккаунт пользователя заблокирован до: 26.8.2285, 9:17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
TEROR^
сообщение 20.3.2011, 20:50
Сообщение #76
Стаж: 14 лет

Сообщений: 577
Благодарностей: 251
Полезность: 0

накатай скриптэ под centos, а то времени нет править этот ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 330863
сообщение 21.3.2011, 8:31
Сообщение #77


Стаж: 14 лет

Сообщений: 4358
Благодарностей: 1079
Полезность: 497

TEROR^,
с центос не имел дела :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
TEROR^
сообщение 23.3.2011, 15:04
Сообщение #78
Стаж: 14 лет

Сообщений: 577
Благодарностей: 251
Полезность: 0

Ладно, буду юзать другой скрипт =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bangzilla
сообщение 4.4.2011, 19:48
Сообщение #79
Стаж: 14 лет

Сообщений: 45
Благодарностей: 2
Полезность: 35

Проблема такая... запускается только один сервер с этим скриптом, а нужно ещё 3.
все сервера находятся в разных папках.
Скажите что нужно сделать для запуска всех серверов с этим скриптом?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Serj
сообщение 4.4.2011, 20:47
Сообщение #80


Стаж: 13 лет

Сообщений: 855
Благодарностей: 266
Полезность: 198

Цитата(Bangzilla @ 4.4.2011, 20:48) *
Проблема такая... запускается только один сервер с этим скриптом, а нужно ещё 3.
все сервера находятся в разных папках.
Скажите что нужно сделать для запуска всех серверов с этим скриптом?

Для каждого сервера сделай свой скрипт запуска
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
14 страниц V  « 3 4 5 ... 12 13 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: