←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Inny
[ROZWIĄZANE] Auto Start TS3 - Skrypt w bas...


Najlepsza odpowiedź Boomers 06.01.2016 19:14

Mała poprawa nie mogę edytować postu. Zrób tak.

#!/bin/bash

TEAMSPEAK=`ps ax | grep ts3server_linux_amd64 | grep -v grep | wc -l`

if [ $TEAMSPEAK != 0 ]
then
echo "Serwer jest nadal włączony"
exit
else
cd /home/ts/serwer
screen -AmdS ts ./ts3server_startscript.sh start
echo "Włączam serwer"
fi
Przejdź do postu
Zablokowany

  • +
  • -
Indoor - zdjęcie Indoor 06.01.2016

Siemka, posiadam VPS`a z systemem Debian 7 64bit postawiłem na nim serwer TS3 i posiadam skrypt napisany w bashu(?), że jak serwer dostanie crasha to sam wstaje, niestety mam z nim problemy bo wywala błędy a serwer nie wstaje a ja nie ogarniam basha(?) prosiłbym o pomoc :)

 

Skrypt:

#!/bin/bash
 
cd /home/ts/serwer
 
TEAMSPEAK = `ps ax | grep ts3server_linux_amd64 | grep -v grep | wc -l`
 
if [ $TEAMSPEAK -eq 1 ]
then
exit
echo "TS dziala"
else
screen -AmdS ts ./ts3server_minimal_runscript.sh restart
echo "Wlaczanie TS`a..."
fi

Błędy:

/home/ts/serwer/crash.sh: line 5: TEAMSPEAK: command not found
/home/ts/serwer/crash.sh: line 13: unexpected EOF while looking for matching ``'
/home/ts/serwer/crash.sh: line 15: syntax error: unexpected end of file
Odpowiedz

  • +
  • -
Boomers - zdjęcie Boomers 06.01.2016

Zrób tak:

 

Otwórz plik rc.local

 

$ nano /etc/rc.loca

 

Dodaj przed exit 0

su ts3 -c '/home/ts3/serwer/ts3server_startscript.sh start'

Zamiast ts3 podaj nazwę twojego użytkownika. Pamiętaj nie uruchamiaj serwera ts jako użytkownik root.

 

Każdy restart vps'a będzie automatycznie uruchamiał twój serwer ts.

 

Jeśli dobrze zrozumiałem dokumentację ts'a skrypt ts3server_minimal_runscript.sh powinno uruchomić się tylko raz aby uzyskać token i dane do konta query. Poźniej robi się to za pomocą ts3server_startscript.sh

 

 


Użytkownik Boomers edytował ten post 06.01.2016 13:01
Odpowiedz

  • +
  • -
Indoor - zdjęcie Indoor 06.01.2016

Ja nie chce przy starcie VPS`a, ale jak serwer dostanie crasha np. w środku dnia to po minucie serwer sam wstaje.

Odpowiedz

  • +
  • -
Boomers - zdjęcie Boomers 06.01.2016

Rozumiem, skrypt będziesz uruchamiał z crona np. co 5 minut.

 

Skrypt ma sprawdzać czy proces jest uruchomiony. Jeśli tak ma kończyć swoje działanie. Jeśli natomiast proces jest nieaktywny, skrypt ma przejść do następnego warunku i uruchomić serwer ts.


Użytkownik Boomers edytował ten post 06.01.2016 13:13
Odpowiedz

  • +
  • -
Indoor - zdjęcie Indoor 06.01.2016

Poradziłem sobie.

#!/bin/bash
 
TEAMSPEAK=`ps ax | grep ts3server_linux_amd64 | grep -v grep | wc -l`
 
if [ -z '$TEAMSPEAK']
then
exit
else
cd /home/ts/serwer
screen -AmdS ts ./ts3server_minimal_runscript.sh start
fi

Tylko są małe błędy:

 

/home/ts/serwer/crash.sh: line 5: [: missing `]'


Użytkownik Indoor edytował ten post 06.01.2016 13:22
Odpowiedz

  • +
  • -
Boomers - zdjęcie Boomers 06.01.2016

Sprawdź czy taka wersja działa.

#!/bin/bash
 
TEAMSPEAK=`ps ax | grep ts3server_linux_amd64 | grep -v grep | wc -l`
 
if [ -z '$TEAMSPEAK' ]
then
exit
else
cd /home/ts/serwer
screen -AmdS ts ./ts3server_minimal_runscript.sh start
fi

Użytkownik Boomers edytował ten post 06.01.2016 14:02
Odpowiedz

  • +
  • -
Indoor - zdjęcie Indoor 06.01.2016

Działa, ale nie tak jak bym chciał, ponieważ nie ważne czy serwer TS3 działa czy nie, on i tak odpala "./ts3server_minimal_runscript.sh start" przez co w logach serwera TS3 jest MNÓSTWO plików .log z informacją, że został odpalony drugi serwer ale na tym samym porcie itp...między innymi chce się pozbyć tych własnie plików, żeby nie było ich

Odpowiedz

  • +
  • -
Boomers - zdjęcie Boomers 06.01.2016

#!/bin/bash

TEAMSPEAK=`ps ax | grep ts3server_linux_amd64 | grep -v grep | wc -l`

if [ '$TEAMSPEAK' != 0 ]
then
echo "Serwer jest nadal włączony"
exit
else
cd /home/ts/serwer
screen -AmdS ts ./ts3server_startscript.sh start
echo "Włączam serwer"
fi

Nigdy nie pisałem skryptów w bash więc nie wiem czy działa on prawidłowo. Sprawdź i powiedz czy wszystko jest ok.

Odpowiedz

  • +
  • -
Najlepsza odpowiedź Boomers - zdjęcie Boomers 06.01.2016

Mała poprawa nie mogę edytować postu. Zrób tak.

#!/bin/bash

TEAMSPEAK=`ps ax | grep ts3server_linux_amd64 | grep -v grep | wc -l`

if [ $TEAMSPEAK != 0 ]
then
echo "Serwer jest nadal włączony"
exit
else
cd /home/ts/serwer
screen -AmdS ts ./ts3server_startscript.sh start
echo "Włączam serwer"
fi
Odpowiedz

  • +
  • -
Indoor - zdjęcie Indoor 06.01.2016

Miodzio, działa dzięki wielkie :)

Odpowiedz

  • +
  • -
radim - zdjęcie radim 06.01.2016

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany