[RELEASE]ServerManagment Script by .Aecho

12/30/2014 00:41 .Aecho.#1
Guten Abend Epvp Community,

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!



mfG

.Aecho

P.S Script ist als Shell nochmal im Anhang falls Copy & Paste nicht funktioniert.
12/30/2014 01:09 SanjixHD#2
Vielen Dank, macht vieles einfacher :D

mfG. Sanji
12/30/2014 01:39 xCPx#3
ouh leute...

also erstmal vorneweg:
Sowas hat es hier schon 2000mal.
Dazu noch folgendes:
Man kann Variablen auch in Shell Scripts nutzen??
Desweiteren kann man sogar py oder lua startscripts verwenden.

Dazu hast du das ganze nichtmal global gemacht, was ich persönlich einfach nur peinlich finde...

sorry aber bei sämtlichen Servern, die ich gemacht habe läuft das alles über global commands.



Finde es einfach unnötig...
ich mein tut mir leid, aber das geht übersichtlicher und mit erheblich weniger aufwand...

Alleine schon wenn du nur shell functions und variablen genutzt hättest...


alleine schon nur deine channel auswahl:
das hier:

lässt sich ohne probleme durch das ersetzen (was für beliebig viele channel funktioniert):

Code:
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"
		ch=1
		read anzahl2
		echo -e "\033[31m Startet die Datenbank ..\033[0m"
		cd db && ./db -I $ip &
		sleep $sleeptime
		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 $ip &
		sleep $sleeptime
		echo -e "\033[31m Der Loginserver wurde gestartet[0m"
		echo -e "\033[31m Starte Channel99 ..\033[0m"
		for f in $channelcores
			co=$(printf "./ch99_%s" "$f")
			fold=$(printf "Channel/channel99/%s" "$f")
			cd fold && $co -I $ip &
		do
		sleep $sleeptime
		echo -e "\033[31m Channel99 wurde gestartet.\033[0m"
		while [ $a -le $anzahl2 ]
		do
			txt=$(printf "\033[31m Startet Channel %i  ..\033[0m" "$anzahl2")
			txt2=$(printf "\033[31m Channel %i wurde gestartet.\033[0m" "$anzahl2")
			echo -e $txt
		    for f in $channelcores
				co=$(printf "./ch%i_%s" "$anzahl2" "$f")
				fold=$(printf "Channel/channel%i/%s" "$anzahl2" "$f")
				cd fold && $co -I $ip &
			do
                        sleep $sleeptime
			echo -e $txt2
		   a=`expr $a + 1`
		done
		echo -e "\033[31m Der Server wurde erfolgreich\n
		\n
		hochgefahren.\033[0m"
		cd ..
			
	;;
dann definiert man oben noch das:
Code:
channelcores="core1
core2"
ip="EURE-SERVER-IP"
sleeptime=2
und fertig.
12/30/2014 02:42 Shaytan #4
Danke die wird sicher einigen helfen :D mir auch haha
12/30/2014 02:50 .Aecho.#5
Quote:
Originally Posted by xCPx View Post
ouh leute...

also erstmal vorneweg:
Sowas hat es hier schon 2000mal.
Dazu noch folgendes:
Man kann Variablen auch in Shell Scripts nutzen??
Desweiteren kann man sogar py oder lua startscripts verwenden.

Dazu hast du das ganze nichtmal global gemacht, was ich persönlich einfach nur peinlich finde...

sorry aber bei sämtlichen Servern, die ich gemacht habe läuft das alles über global commands.



Finde es einfach unnötig...
ich mein tut mir leid, aber das geht übersichtlicher und mit erheblich weniger aufwand...

Alleine schon wenn du nur shell functions und variablen genutzt hättest...


alleine schon nur deine channel auswahl:
das hier:

lässt sich ohne probleme durch das ersetzen (was für beliebig viele channel funktioniert):

Code:
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"
		ch=1
		read anzahl2
		echo -e "\033[31m Startet die Datenbank ..\033[0m"
		cd db && ./db -I $ip &
		sleep $sleeptime
		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 $ip &
		sleep $sleeptime
		echo -e "\033[31m Der Loginserver wurde gestartet[0m"
		echo -e "\033[31m Starte Channel99 ..\033[0m"
		for f in $channelcores
			co=$(printf "./ch99_%s" "$f")
			fold=$(printf "Channel/channel99/%s" "$f")
			cd fold && $co -I $ip &
		do
		sleep $sleeptime
		echo -e "\033[31m Channel99 wurde gestartet.\033[0m"
		while [ $a -le $anzahl2 ]
		do
			txt=$(printf "\033[31m Startet Channel %i  ..\033[0m" "$anzahl2")
			txt2=$(printf "\033[31m Channel %i wurde gestartet.\033[0m" "$anzahl2")
			echo -e $txt
		    for f in $channelcores
				co=$(printf "./ch%i_%s" "$anzahl2" "$f")
				fold=$(printf "Channel/channel%i/%s" "$anzahl2" "$f")
				cd fold && $co -I $ip &
			do
                        sleep $sleeptime
			echo -e $txt2
		   a=`expr $a + 1`
		done
		echo -e "\033[31m Der Server wurde erfolgreich\n
		\n
		hochgefahren.\033[0m"
		cd ..
			
	;;
dann definiert man oben noch das:
Code:
channelcores="core1
core2"
ip="EURE-SERVER-IP"
sleeptime=2
und fertig.


Wie bereits im Thread stehen , übe ich Shell und bin noch kein Profi so wie du, jedoch vielen dank für den Verbesserungstipp!
12/30/2014 03:47 .K0rí#6
Schau dir das ganze in Python an hier mal was (sollte klappen )

Code:
#!/usr/local/bin python3.3
#-*- coding" utf-8 -*-
###################################################################
#						Server-Tool by Kori						  #
#																  #
#																  #
#							Funktionen:							  #
#						  Server Stoppen						  #
###################################################################

import os

def Servertool():
	print ("Willkommen im Servername Servertool\n"\
			"Was möchten sie tuhen?\n"\
			"Ihnen stehen folgende Sachen zur verfügung\n"\
			"\n"\
			"\n"\
			"1 = Server Starten\n"\
			"2 = Server Stoppen\n"\
			"3 = Logs Löschen")
	kori = raw_imput("Geben sie die Zahl ein:")
	if kori == 1:
		os.system("cd /home/game && sh start.sh")
	elif kori == 2:
		os.system("cd /home/game && sh stop.sh")
		os.system("sleep 2")
		print (" Server Erfolgreich gestoppt")
		print (Servertool())
	elif kori == 3:
		os.system("cd /home/game && sh clear.sh")
		os.system("sleep 2")
		print ("Logs wurden Erfolgreich entfernt")
		print (Servertool())
print (Servertool())
12/30/2014 03:58 .Aecho.#7
Quote:
Originally Posted by .K0rí View Post
Schau dir das ganze in Python an hier mal was (sollte klappen )

Code:
#!/usr/local/bin python3.3
#-*- coding" utf-8 -*-
###################################################################
#						Server-Tool by Kori						  #
#																  #
#																  #
#							Funktionen:							  #
#						  Server Stoppen						  #
###################################################################

import os

def Servertool():
	print ("Willkommen im Servername Servertool\n"\
			"Was möchten sie tuhen?\n"\
			"Ihnen stehen folgende Sachen zur verfügung\n"\
			"\n"\
			"\n"\
			"1 = Server Starten\n"\
			"2 = Server Stoppen\n"\
			"3 = Logs Löschen")
	kori = raw_imput("Geben sie die Zahl ein:")
	if kori == 1:
		os.system("cd /home/game && sh start.sh")
	elif kori == 2:
		os.system("cd /home/game && sh stop.sh")
		os.system("sleep 2")
		print (" Server Erfolgreich gestoppt")
		print (Servertool())
	elif kori == 3:
		os.system("cd /home/game && sh clear.sh")
		os.system("sleep 2")
		print ("Logs wurden Erfolgreich entfernt")
		print (Servertool())
print (Servertool())
Die Sache ist die ich wollte mit meinem Script bewirken das nur noch ein Script benötigt wird und nciht Start/stop/clear/quest script da ich es gerne aufgeräumt habe :)
12/30/2014 11:43 Alergix2#8
Sehr schön, dass du uns sowas zur Verfügungstellst :)
++
12/30/2014 12:56 Tuora#9
Ganz Nett,danke dir
12/30/2014 21:12 Bostanin Edhe#10
Joah wer´s braucht ;) danke dir thanks haste trzdm. für die Arbeit !!!
12/31/2014 03:02 x'Radon#11
Auch wenn es das schon gab oder es anders/einfacher geht, finde ich es trotzdem nett, dass du es mit der Community teilst. Übe weiter und vielleicht sieht man ja nochmehr von dir! :)

Grüße
12/31/2014 05:36 L๏รtŦ๏ยภ๔#12
Brauche es zwar net, aber nett, dass du es teilst und dir die Arbeit gemacht hast.
Thanks haste dafür.
12/31/2014 17:11 .Aecho.#13
Quote:
Originally Posted by x'Radon View Post
Auch wenn es das schon gab oder es anders/einfacher geht, finde ich es trotzdem nett, dass du es mit der Community teilst. Übe weiter und vielleicht sieht man ja nochmehr von dir! :)

Grüße

Aufjedenfall sieht man noch was von mir :)
01/01/2015 19:32 xCPx#14
Nurso nebenbei

ich selbst benutze Shell so gut wie nie.
das einzige wofür ich n shellscript use is für global commands zur weiterleitung an das jeweilige PY Script.


Is jetzt nicht böse gemeint.

Aber wenn du nen ordentliches script machen willst, schreib es entweder in py oder aber schau die functions usw in shell an.
01/02/2015 06:12 MakeMeDownx3#15
Sicher dass das Skript von dir ist? sieht stark nach dem Skript von Viruz aus nur "Re-Release" drüber gestetzt, nunja wer's nötig hat.