da ich momentan am Shell üben bin und ich dieses Script zumindest für Anfänger sehr hilfreich halte, teile ich es mit euch
ACHTUNG!: Pfade sowie ServerIP müssen angepasst werden!
Code:
#!/bin/sh ################################################# ####Servermanagment Script by .Aecho############# ####Do not RE-RELEASE############################ ################################################# echo -e "\033[37mServer Managment by .Aecho" echo -e "\033[31m Was hast du vor ? \n 1 - (1) Server starten\n 2 - (2) Server stoppen\n 3 - (3) Server rebooten\n 4 - (4) Logfiles entfernen\n 5 - (4) Quests neu kompilieren\n 6 - (6) Backup erstellen\n 7 - (7) MySQL Server neustarten\n 8 - (8) MySQL Server stoppen\n 9 - (9) MySQL Server starten\n" read anzahl case $anzahl in 1*) echo -e "\033[31m Wie viele Channel möchtest du starten ? \n 1 - (1) Channel\n 2 - (2) Channel\n 3 - (3) Channel\n 4 - (4) Channel\n" read anzahl2 case $anzahl2 in 1*) echo -e "\033[31m Startet die Datenbank ..\033[0m" cd db && ./db -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Die Datenbank wurde gestartet.\033[0m" echo -e "\033[31m Startet den Loginserver ..\033[0m" cd auth && ./auth -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Der Loginserver wurde gestartet[0m" echo -e "\033[31m Starte Channel99 ..\033[0m" cd Channel/channel99/core1 && ./ch99_core1 -I EURE-SERVER-IP & cd Channel/channel99/core2 && ./ch99_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Channel99 wurde gestartet.\033[0m" echo -e "\033[31m Startet Channel 1 ..\033[0m" cd Channel/channel1/core1 && ./ch1_core1 -I EURE-SERVER-IP & cd Channel/channel1/core2 && ./ch1_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Channel 1 wurde gestartet.\033[0m" echo -e "\033[31m Der Server wurde erfolgreich\n \n hochgefahren.\033[0m" cd .. ;; 2*) echo -e "\033[31m Startet die Datenbank ..\033[0m" cd db && ./db -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Die Datenbank wurde gestartet.\033[0m" echo -e "\033[31m Startet den Loginserver ..\033[0m" cd auth && ./auth -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Der Loginserver wurde gestartet[0m" echo -e "\033[31m Starte Game99 ..\033[0m" cd Channel/channel99/core1 && ./ch99_core1 -I EURE-SERVER-IP & cd Channel/channel99/core2 && ./ch99_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Game99 wurde gestartet.\033[0m" echo -e "\033[31m Startet Channel 1 ..\033[0m" cd Channel/channel1/core1 && ./ch1_core1 -I EURE-SERVER-IP & cd Channel/channel1/core2 && ./ch1_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Channel 1 wurde gestartet.\033[0m" echo -e "\033[31m Starte Channel 2..\033[0m" cd Channel/channel2/core1 && ./ch2_core1 -I EURE-SERVER-IP & cd Channel/channel2/core2 && ./ch2_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Channel2 wurde gestartet.\033[0m" echo -e "\033[31m Der Server wurde erfolgreich\n \n hochgefahren.\033[0m" cd .. ;; 3*) echo -e "\033[31m Startet die Datenbank ..\033[0m" cd db && ./db -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Die Datenbank wurde gestartet.\033[0m" echo -e "\033[31m Startet den Loginserver ..\033[0m" cd auth && ./auth -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Der Loginserver wurde gestartet[0m" echo -e "\033[31m Starte Game99 ..\033[0m" cd Channel/channel99/core1 && ./ch99_core1 -I EURE-SERVER-IP & cd Channel/channel99/core2 && ./ch99_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Game99 wurde gestartet.\033[0m" echo -e "\033[31m Startet Channel 1 ..\033[0m" cd Channel/channel1/core1 && ./ch1_core1 -I EURE-SERVER-IP & cd Channel/channel1/core2 && ./ch1_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Channel 1 wurde gestartet.\033[0m" echo -e "\033[31m Starte Channel 2..\033[0m" cd Channel/channel2/core1 && ./ch2_core1 -I EURE-SERVER-IP & cd Channel/channel2/core2 && ./ch2_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Channel2 wurde gestartet.\033[0m" echo -e "\033[31m Starte Channel 3..\033[0m" cd Channel/channel3/core1 && ./ch3_core1 -I EURE-SERVER-IP & cd Channel/channel3/core2 && ./ch3_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Channel3 wurde gestartet.\033[0m" echo -e "\033[31m Der Server wurde erfolgreich\n \n hochgefahren.\033[0m" cd .. ;; 4*) echo -e "\033[31m Startet die Datenbank ..\033[0m" cd db && ./db -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Die Datenbank wurde gestartet.\033[0m" echo -e "\033[31m Startet den Loginserver ..\033[0m" cd auth && ./auth -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Der Loginserver wurde gestartet[0m" echo -e "\033[31m Starte Game99 ..\033[0m" cd Channel/channel99/core1 && ./ch99_core1 -I EURE-SERVER-IP & cd Channel/channel99/core2 && ./ch99_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Game99 wurde gestartet.\033[0m" echo -e "\033[31m Startet Channel 1 ..\033[0m" cd Channel/channel1/core1 && ./ch1_core1 -I EURE-SERVER-IP & cd Channel/channel1/core2 && ./ch1_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Channel 1 wurde gestartet.\033[0m" echo -e "\033[31m Starte Channel 2..\033[0m" cd Channel/channel2/core1 && ./ch2_core1 -I EURE-SERVER-IP & cd Channel/channel2/core2 && ./ch2_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Channel2 wurde gestartet.\033[0m" echo -e "\033[31m Starte Channel 3..\033[0m" cd Channel/channel3/core1 && ./ch3_core1 -I EURE-SERVER-IP & cd Channel/channel3/core2 && ./ch3_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Channel3 wurde gestartet.\033[0m" echo -e "\033[31m Starte Channel 3..\033[0m" cd Channel/channel4/core1 && ./ch4_core1 -I EURE-SERVER-IP & cd Channel/channel4/core2 && ./ch4_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Channel3 wurde gestartet.\033[0m" echo -e "\033[31m Der Server wurde erfolgreich\n \n hochgefahren.\033[0m" cd .. esac ;; 2*) echo -e "Der Server wird sofort heruntergefahren..." killall -9 game db sleep 1 killall -9 db game sleep 1 ;; 3*) killall game && killall db sleep 5 echo -e "\033[31m Startet die Datenbank ..\033[0m" cd db && ./db -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Die Datenbank wurde gestartet.\033[0m" echo -e "\033[31m Startet den Loginserver ..\033[0m" cd auth && ./auth -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Der Loginserver wurde gestartet[0m" echo -e "\033[31m Starte Channel99 ..\033[0m" cd Channel/channel99/core1 && ./ch99_core1 -I EURE-SERVER-IP & cd Channel/channel99/core2 && ./ch99_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Channel99 wurde gestartet.\033[0m" echo -e "\033[31m Startet Channel 1 ..\033[0m" cd Channel/channel1/core1 && ./ch1_core1 -I EURE-SERVER-IP & cd Channel/channel1/core2 && ./ch1_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Channel 1 wurde gestartet.\033[0m" echo -e "\033[31m Der Server wurde erfolgreich mit einem Channel\n \n hochgefahren.\033[0m" cd .. ;; 4*) echo "Lösche Logs..." rm -f */*/syserr && rm -f */*/syslog && rm -f */*/PTS && rm -f */*/game.core && rm -f */*/quest_mysql.core && rm -f */*/VERSION.txt && rm -f */*/stdout && rm -f */*/PTS && rm -f */*/ProfileLog && rm -f */*/pid && rm -f */*/packet_info.txt && rm -f */*/p2p_packet_info.txt rm -f */syserr && rm -f */syslog && rm -f */PTS && rm -f */game.core && rm -f */quest_mysql.core && rm -f */VERSION.txt && rm -f */stdout && rm -f */PTS && rm -f */ProfileLog && rm -f */pid && rm -f */packet_info.txt && rm -f */p2p_packet_info.txt rm -f */*/*/syserr && rm -f */*/*/syslog && rm -f */*/*/PTS && rm -f */*/*/game.core && rm -f */*/*/quest_mysql.core && rm -f */*/*/VERSION.txt && rm -f */*/*/stdout && rm -f */*/*/PTS && rm -f */*/*/ProfileLog && rm -f */*/*/pid && rm -f */*/*/packet_info.txt && rm -f */*/*/p2p_packet_info.txt echo "Logs gelöscht!" ;; 5*) echo "Quest werden neu kompiliert!" sleep 2 cd quest/ python make_quest sleep 2 echo "Quest wurden neu kompiliert!" ;; 6*) cd .. if ! [ -d "/usr/home/backup"] ; then mkdir /usr/home/backup fi NOW=$(date +"%d-%m-%Y") NOW2=$(date +"%h-%m") echo "Server wird gestoppt und Logs werden gelöscht" killall -9 game db sleep 1 killall -9 db game sleep 5 rm -f */*/syserr && rm -f */*/syslog && rm -f */*/PTS && rm -f */*/game.core && rm -f */*/quest_mysql.core && rm -f */*/VERSION.txt && rm -f */*/stdout && rm -f */*/PTS && rm -f */*/ProfileLog && rm -f */*/pid && rm -f */*/packet_info.txt && rm -f */*/p2p_packet_info.txt rm -f */syserr && rm -f */syslog && rm -f */PTS && rm -f */game.core && rm -f */quest_mysql.core && rm -f */VERSION.txt && rm -f */stdout && rm -f */PTS && rm -f */ProfileLog && rm -f */pid && rm -f */packet_info.txt && rm -f */p2p_packet_info.txt rm -f */*/*/syserr && rm -f */*/*/syslog && rm -f */*/*/PTS && rm -f */*/*/game.core && rm -f */*/*/quest_mysql.core && rm -f */*/*/VERSION.txt && rm -f */*/*/stdout && rm -f */*/*/PTS && rm -f */*/*/ProfileLog && rm -f */*/*/pid && rm -f */*/*/packet_info.txt && rm -f */*/*/p2p_packet_info.txt sleep 5 echo "Backups werden jetzt erstellt..." tar -czf game_$NOW_$NOW2.tar.gz game sleep 2 mv game_$NOW_$NOW2.tar.gz /usr/home/backup cd /var/db/ service mysql-server stop sleep 5 tar -czf mysql_$NOW_$NOW2.tar.gz mysql sleep 2 mv mysql_$NOW_$NOW2.tar.gz /usr/home/backup sleep 5 echo "Backup wurde erfolgreich erstellt!" sleep 1 echo "Backup befindet sich im /usr/home/backup Ordner!" service mysql-server start sleep 2 cd /usr/home/game/ echo "Metin2 Server wird nun wieder mit einem Channel gestartet!" sleep 5 echo -e "\033[31m Startet die Datenbank ..\033[0m" cd db && ./db -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Die Datenbank wurde gestartet.\033[0m" echo -e "\033[31m Startet den Loginserver ..\033[0m" cd auth && ./auth -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Der Loginserver wurde gestartet[0m" echo -e "\033[31m Starte Channel99 ..\033[0m" cd Channel/channel99/core1 && ./ch99_core1 -I EURE-SERVER-IP & cd Channel/channel99/core2 && ./ch99_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Channel99 wurde gestartet.\033[0m" echo -e "\033[31m Startet Channel 1 ..\033[0m" cd Channel/channel1/core1 && ./ch1_core1 -I EURE-SERVER-IP & cd Channel/channel1/core2 && ./ch1_core2 -I EURE-SERVER-IP & sleep 2 echo -e "\033[31m Channel 1 wurde gestartet.\033[0m" echo -e "\033[31m Der Server wurde erfolgreich mit einem Channel\n \n hochgefahren.\033[0m" cd .. ;; 7*) service mysql-server restart ;; 8*) service mysql-server stop ;; 9*) service mysql-server start esac
mfG
.Aecho
P.S Script ist als Shell nochmal im Anhang falls Copy & Paste nicht funktioniert.