Ajuda com IPTABLES [RESOLVIDO]

13. Re: Ajuda com IPTABLES [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 13/01/2014 - 15:50h

renato_pacheco escreveu:

Tente assim:


#!/bin/bash

PIDFILE=/home/CS2D/cs2d_dedicated.pid"

if [ -e $PIDFILE ] && [ "$(cat $PIDFILE)" == "$(pidof cs2d_dedicated)" ]; then
echo "Servidor online."
exit 99
else
/home/CS2D/cs2d_dedicated & > /home/CS2D/cs2d_dedicated.log &
echo $! > "${PIDFILE}"
chmod 644 "${PIDFILE}"
fi


Olá,

Ainda continua dando problema, não da erro nem warning, mas ele ainda fica criando vários servidores.
Obrigado e no aguardo.


  


14. Re: Ajuda com IPTABLES [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 13/01/2014 - 15:59h

Execute esse script assim:


bash -x script.sh


E poste aqui a saída.


15. Re: Ajuda com IPTABLES [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 13/01/2014 - 17:43h


root@V-8451:/home/CS2D# bash -x cs2d_crontab
+ PIDFILE=/home/CS2D/cs2d_dedicated.pid
+ '[' -e /home/CS2D/cs2d_dedicated.pid ']'
++ cat /home/CS2D/cs2d_dedicated.pid
++ pidof cs2d_dedicated
+ '[' 11419 == 3824 ']'
+ /home/CS2D/cs2d_dedicated
+ echo 11828
+ chmod 644 /home/CS2D/cs2d_dedicated.pid
root@V-8451:/home/CS2D# #######################################################
Unreal Software's Counter-Strike 2D Dedicated Server
> visit www.CS2D.com for info and updates <
Game Version: b 0.1.2.3
Server Build for b 0.1.2.3: 1.0
System Time: 13 Jan 2014 - 22:40:39
Operating System: GNU/Linux
#######################################################
UDP socket initialized using port 42979
U.S.G.N.: Your game version is up to date!
starting server...


Assim funciona normal, não fica abrindo vários servers, porque não ta usando o crontab


16. Re: Ajuda com IPTABLES [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 13/01/2014 - 21:01h

Coloque o seu script dessa forma:


#!/bin/bash

PIDFILE="/home/CS2D/cs2d_dedicated.pid"

if [ -e $PIDFILE ] && [[ "$(cat $PIDFILE)" = "$(pidof cs2d_dedicated)" ]]; then
echo "Servidor online."
exit 99
else
/home/CS2D/cs2d_dedicated & > /home/CS2D/cs2d_dedicated.log &
pidof cs2d_dedicated > "${PIDFILE}"
chmod 644 "${PIDFILE}"
fi


E execute-o com bash -x script.sh.



17. Re: Ajuda com IPTABLES [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 13/01/2014 - 22:14h


root@V-8451:/home/CS2D# bash -x cs2d_crontab
+ PIDFILE=/home/CS2D/cs2d_dedicated.pid
+ '[' -e /home/CS2D/cs2d_dedicated.pid ']'
++ cat /home/CS2D/cs2d_dedicated.pid
++ pidof cs2d_dedicated
+ [[ 15630 15619 15608 3824 = \3\8\2\4 ]]
+ /home/CS2D/cs2d_dedicated
+ pidof cs2d_dedicated
+ chmod 644 /home/CS2D/cs2d_dedicated.pid
root@V-8451:/home/CS2D# #######################################################
Unreal Software's Counter-Strike 2D Dedicated Server
> visit www.CS2D.com for info and updates <
Game Version: b 0.1.2.3
Server Build for b 0.1.2.3: 1.0
System Time: 14 Jan 2014 - 03:13:18
Operating System: GNU/Linux
#######################################################
UDP socket initialized using port 53695
U.S.G.N.: Your game version is up to date!
starting server...


Eu testei no crontab e também ficou abrindo vários servers


18. Re: Ajuda com IPTABLES [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 14/01/2014 - 09:44h

Cara, com o servidor do CS em execução, execute os seguintes comandos e poste aqui:


pidof cs2d_dedicated
ps aux



19. Re: Ajuda com IPTABLES [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/01/2014 - 15:24h

renato_pacheco escreveu:

Cara, com o servidor do CS em execução, execute os seguintes comandos e poste aqui:


pidof cs2d_dedicated
ps aux


Aqui está

root@V-8451:~# pidof cs2d_dedicated
3824
root@V-8451:~# ps aus
ERROR: Conflicting format options.
********* simple selection ********* ********* selection by list *********
-A all processes -C by command name
-N negate selection -G by real group ID (supports names)
-a all w/ tty except session leaders -U by real user ID (supports names)
-d all except session leaders -g by session OR by effective group name
-e all processes -p by process ID
T all processes on this terminal -s processes in the sessions given
a all w/ tty, including other users -t by tty
g OBSOLETE -- DO NOT USE -u by effective user ID (supports names)
r only running processes U processes for specified users
x processes w/o controlling ttys t by tty
*********** output format ********** *********** long options ***********
-o,o user-defined -f full --Group --User --pid --cols --ppid
-j,j job control s signal --group --user --sid --rows --info
-O,O preloaded -o v virtual memory --cumulative --format --deselect
-l,l long u user-oriented --sort --tty --forest --version
-F extra full X registers --heading --no-heading --context
********* misc options *********
-V,V show version L list format codes f ASCII art forest
-m,m,-L,-T,H threads S children in sum -y change -l format
-M,Z security data c true command name -c scheduling class
-w,w wide output n numeric WCHAN,UID -H process hierarchy
root@V-8451:~#


Deu um erro no comando ps aux , mas eu digitei ps -aux e saiu várias coisas, então eu puxei o cs2d_dedicated de lá

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 3824 2.6 0.6 93816 56300 ? S Jan12 72:02 /home/CS2D/cs2d


A minha pasta do cs2d_dedicated fica em /home/CS2D/cs2d_dedicated


20. Re: Ajuda com IPTABLES [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 14/01/2014 - 15:48h

Tente assim:


#!/bin/bash

PIDFILE="/home/CS2D/cs2d_dedicated.pid"

if [ -e $PIDFILE ] && [ $(cat $PIDFILE) = $(pidof cs2d_dedicated) ]; then
echo "Servidor online."
exit 99
else
/home/CS2D/cs2d_dedicated & > /home/CS2D/cs2d_dedicated.log &
pidof cs2d_dedicated > "${PIDFILE}"
chmod 644 "${PIDFILE}"
fi


Tomara q d certo... não esqueça d executar com o bash -x só pra gente debugar.


21. Re: Ajuda com IPTABLES [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/01/2014 - 22:33h

Olá,

Ainda não funcionou, ele ainda continua abrindo vários CS2d

Veja o bash -x cs2d_crontab



root@V-8451:/home/CS2D# bash -x cs2d_crontab
+ PIDFILE=/home/CS2D/cs2d_dedicated.pid
+ '[' -e /home/CS2D/cs2d_dedicated.pid ']'
++ cat /home/CS2D/cs2d_dedicated.pid
++ pidof cs2d_dedicated
+ '[' 17641 17598 3824 = 3824 ']'
cs2d_crontab: line 5: [: too many arguments
+ /home/CS2D/cs2d_dedicated
+ pidof cs2d_dedicated
+ chmod 644 /home/CS2D/cs2d_dedicated.pid
root@V-8451:/home/CS2D# #######################################################
Unreal Software's Counter-Strike 2D Dedicated Server
> visit www.CS2D.com for info and updates <
Game Version: b 0.1.2.3
Server Build for b 0.1.2.3: 1.0
System Time: 15 Jan 2014 - 03:30:41
Operating System: GNU/Linux
#######################################################
UDP socket initialized using port 58608
U.S.G.N.: Your game version is up to date!
starting server...
load map 'zm_flag4'
----- Server started -----


e outra, meu amigo me deu um código com a mesma função, e funcionando, você pode usar para implementar/tirar ideias e por nesse, mas ele tem um defeito, se o servidor crashar(sair do ar do nada, conflito, etc) ele não detecta, e não abre outro CS2D, e esse código só verifica se ta online ou não, e não abre outro CS

se você conseguir por esse código abaixo para detectar se ele crashar e abrir do sozinho, eu tenho uma idéia pra vc por ele pra abrir o servidor


Primeiramente eu não sei nada disso, só vo dar um exemplo
Path="/home/CS2D/cs2d_dedicated"
-- se nao tiver online
vc poe pra executar o arquivo <PATH>


Aqui segue o código original ( pode tirar idéias ou partes pra implementar no de cima // lembrando que ele só verifica se o sv ta online ou não, se não estiver ele não abre outro cs2d_dedicated, disse meu amigo // se o sv crashar ele tbm não detecta se o sv fico off

ps cax | grep cs2d_dedicated > /dev/null
if [ $? -eq 0 ]; then
echo "Running."
else
echo "Not running."
fi



22. Re: Ajuda com IPTABLES [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 14/01/2014 - 23:48h

Cara, o script do seu amigo até funciona, mas não acho eficiente, justamente por causa do seu problema. A única coisa q tá falhando no seu script é a condição if, pq é a primeira vez q estou fazendo condições múltiplas. Estudando aqui, veja se dessa forma funciona:


#!/bin/bash

PIDFILE="/home/CS2D/cs2d_dedicated.pid"

if [[ -e $PIDFILE && $(cat $PIDFILE) = $(pidof cs2d_dedicated) ]]; then
echo "Servidor online."
exit 99
else
/home/CS2D/cs2d_dedicated & > /home/CS2D/cs2d_dedicated.log &
pidof cs2d_dedicated > "${PIDFILE}"
chmod 644 "${PIDFILE}"
fi



23. Re: Ajuda com IPTABLES [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 15/01/2014 - 00:11h

renato_pacheco escreveu:

Cara, o script do seu amigo até funciona, mas não acho eficiente, justamente por causa do seu problema. A única coisa q tá falhando no seu script é a condição if, pq é a primeira vez q estou fazendo condições múltiplas. Estudando aqui, veja se dessa forma funciona:


#!/bin/bash

PIDFILE="/home/CS2D/cs2d_dedicated.pid"

if [[ -e $PIDFILE && $(cat $PIDFILE) = $(pidof cs2d_dedicated) ]]; then
echo "Servidor online."
exit 99
else
/home/CS2D/cs2d_dedicated & > /home/CS2D/cs2d_dedicated.log &
pidof cs2d_dedicated > "${PIDFILE}"
chmod 644 "${PIDFILE}"
fi


Eu sou programador LUA
Eu acho que está errado isso, você pos " = ", eu acho que deveria ser ==
valor_x == valor_y


24. Re: Ajuda com IPTABLES [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 15/01/2014 - 00:15h

sheeL escreveu:

renato_pacheco escreveu:

Cara, o script do seu amigo até funciona, mas não acho eficiente, justamente por causa do seu problema. A única coisa q tá falhando no seu script é a condição if, pq é a primeira vez q estou fazendo condições múltiplas. Estudando aqui, veja se dessa forma funciona:


#!/bin/bash

PIDFILE="/home/CS2D/cs2d_dedicated.pid"

if [[ -e $PIDFILE && $(cat $PIDFILE) = $(pidof cs2d_dedicated) ]]; then
echo "Servidor online."
exit 99
else
/home/CS2D/cs2d_dedicated & > /home/CS2D/cs2d_dedicated.log &
pidof cs2d_dedicated > "${PIDFILE}"
chmod 644 "${PIDFILE}"
fi


Eu sou programador LUA
Eu acho que está errado isso, você pos " = ", eu acho que deveria ser ==
valor_x == valor_y



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

Aqui está o código original, peguei prontinho, sem modificaçoes

#!/usr/bin/env bash

PIDFILE="$HOME/tmp/cs2d_dedicated.pid"

if [ -e "${PIDFILE}" ] && (ps -u $USER -f | grep "[ ]$(cat ${PIDFILE})[ ]"); then
echo "Already running."
exit 99
fi

$HOME/cs2d/cs2d_dedicated & > $HOME/tmp/cs2d_dedicated.log &

echo $! > "${PIDFILE}"
chmod 644 "${PIDFILE}"


PS = Não sei oque signfica $HOME




01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts