Bash - ocena oraz poprawa b

Potrzebujesz pomocy z C, C++, perl, python, itp.
Karolus
Posty: 12
Rejestracja: 24 stycznia 2011, 23:59

Bash - ocena oraz poprawa błędów w skrypcie

Post autor: Karolus »

Witajcie.

Napisałem sobie finalnie skrypt, który restartuje serwer do minecrafta. Mianowicie, wiadomości na czacie, zapisywanie, wyrzucanie graczy, stop serwera, zabicie procesów screena, uruchomienie go ponownie i finalnie uruchomienie serwera.

Skrypt:

Kod: Zaznacz cały

#!/bin/bash# Minecraft AutoRestart


cd /home/xpirationcraft/
echo "=================================================="
echo "Rozpoczynam sekwencje: Automatyczny Restart Serwera"
echo "=================================================="


screen -p 0 -S xpiration -X stuff "say ============================================="`echo -ne '\015'`
sleep 0.5
screen -p 0 -S xpiration -X stuff "say Serwer zostanie za chwile zrestartowany!"`echo -ne '\015'`
sleep 0.5
screen -p 0 -S xpiration -X stuff "say Restart serwera uruchamiany jest automatycznie!"`echo -ne '\015'`
sleep 0.5
screen -p 0 -S xpiration -X stuff "say O godzinach: 5:00 | 10:00 | 15:00 | 20:00"`echo -ne '\015'`
sleep 0.5
screen -p 0 -S xpiration -X stuff "say Kazdy restart trwa od 1 do 2 minut."`echo -ne '\015'`
sleep 0.5
screen -p 0 -S xpiration -X stuff "say Nie wyjscie moze skutkowac utrata ekwipunku!"`echo -ne '\015'`
sleep 0.5
screen -p 0 -S xpiration -X stuff "say ============================================="`echo -ne '\015'`


sleep 5
echo "Restart serwera za 60 sekund"
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 60 sekund"`echo -ne '\015'`


sleep 10
echo "Restart serwera za 50 sekund"
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 50 sekund"`echo -ne '\015'`


sleep 10
echo "Restart serwera za 40 sekund"
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 40 sekund"`echo -ne '\015'`


sleep 10
echo "Restart serwera za 30 sekund"
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 30 sekund (Prosimy o wyjscie!)"`echo -ne '\015'`


sleep 10
echo "Restart serwera za 20 sekund"
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 20 sekund (Prosimy o wyjscie!)"`echo -ne '\015'`


sleep 10
echo "Restart serwera za 10 sekund (Zapisuje stan serwera)"
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 10 sekund (Prosimy o wyjscie!)"`echo -ne '\015'`
screen -p 0 -S xpiration -X stuff "save-all"`echo -ne '\015'`


sleep 5
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 5 sekund (Prosimy o wyjscie!)"`echo -ne '\015'`


sleep 1
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 4 sekundy (Prosimy o wyjscie!)"`echo -ne '\015'`


sleep 1
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 3 sekundy (Prosimy o wyjscie!)"`echo -ne '\015'`


sleep 1
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 2 sekundy (Prosimy o wyjscie!)"`echo -ne '\015'`


sleep 1
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 1 sekunde (Prosimy o wyjscie!)"`echo -ne '\015'`


sleep 1
echo "Wyrzucam wszystkich graczy"
screen -p 0 -S xpiration -X stuff "kickall"`echo -ne '\015'`


sleep 1
echo "Wylaczam serwer"


sleep 1
screen -p 0 -S xpiration -X stuff "say ---==[RESTART]==---"`echo -ne '\015'`


sleep 1
screen -p 0 -S xpiration -X stuff "stop"`echo -ne '\015'`


sleep 1
echo "Czekam 30 sekund na wylaczenie serwera"
sleep 10
echo "Czekam 20 sekund na wylaczenie serwera"
sleep 10
echo "Czekam 10 sekund na wylaczenie serwera"


sleep 10
echo "Zabijam screena"
killall -v screen


sleep 2
echo "Uruchamiam ponownie screena oraz serwer..."
cd "/home/xpirationcraft";  screen -S xpiration -dmS java -Xms14336M -Xmx14336M -jar craftbukkit-1.4.2-R0.2.jar nogui


sleep 40
screen -p 0 -S xpiration -X stuff "say Restart serwera przebiegł pomyślnie!"`echo -ne '\015'`
Problem jest tylko tego typu, że nie mam pojęcia co jest nie ta,k że na crontabie już nie działa co też jest dziwne bo kiedy ustawiałem sobie w crontabie z wyprzedzeniem na np. za 5 minut i czekałem żeby sprawdzić czy zadziała to było poprawnie. W końcu stwierdziłem, że będzie działać i ustawiłem uruchomienie w crontab na za kilka godzin i nie działa.

Co tutaj jest nie tak?
ODPOWIEDZ