• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!
  • Dies ist ein moderiertes Forum. Dein Beitrag ist für dich und andere erst sichtbar, wenn er von einem Teammitglied moderiert wurde! Wird dein Beitrag abgelehnt erhältst du eine Meldung. Bitte erstelle so lange keine neuen Beiträge! Die Freischaltung wird auch nicht durch Nachfragen bei einem Teammitglied beschleunigt.

[Tutorial] - Linux Bash-Script zum Craftbukkit starten

Status
Für weitere Antworten geschlossen.

DevNull

Schafhirte
Registriert
5 August 2012
Beiträge
107
Diamanten
0
Mir ist grad warm und ich kann nicht schlafen,
also mach ich mal ein kleines Tutorial.

Viele Serverinhaber benutzen wie ich Linux, Ich persönlich finde lange Befehle eingeben langweilig.
deswegen hab ich mir ein keines Bash-script gebastelt was mir alles n bissel erleichtert.

Code:
#!/bin/sh
case "$1" in
    	start)
             	screen -A -m -d -S minecraft_server java -Xmx8192M -Xms8192M -jar /home/lexat/mc_new/craftbukkit.jar
             	echo "Server wird gestartet, screen -r eingeben um den Serverlog anzuzeigen."
            	;;
    	stop)
screen -S minecraft_server -X stuff $'save-all\n'
             	echo "Der Save-All-Befehl wurde an den Server gesendet."
             	screen -S minecraft_server -X stuff $'stop\n'
             	echo "Der Stop-Befehl wurde an den Server gesendet."
            	;;
     	clear)
             	echo -n > /home/lexat/mc_new/server.log
             	echo "server.log wurden geleert."
            	;;
    	view)
             	screen -r
            	;;
    	backup)
             	tar cfv /home/lexat/backups/mc_backups/serverbackup.tar /home/lexat/mc_new
             	echo "Serverbackup beendet! Beginne mit dem komprimieren."
             	gzip /home/lexat/backups/mc_backups/serverbackup.tar
             	echo "Das eben erstellte Backup wurde erfolgreich komprimiert."
            	;;
    	*)
             	echo "Verwende: ${0} {start|stop|clear|backup|view}"
             	exit 2
esac
exit 0
Ich habe die Pfade im angezeigtem Code absichtlich nicht verändert damit man leichter
nachvollziehen kann was hier passiert.

Für diese Art Script reicht es aus, z.B. direct in der Konsole
einen Editor zu starten und den Inhalt des Scriptes hineinzuschreiben.
das ganze wird dann z.B. unter dem Namen "startscript.sh" abgespeichert
und mit dem Befehl "chmod +x startscript.sh" ausführbar machen.
(wie man diese datei dann startet findet ihr am Ende das Tutorials.)

Das Script ist in mehrer Abschnitte eingeteilt,
als erstes der "Header" der nix weiter aussagt, als das es sich um ein SH Script handelt.
Code:
#!/bin/sh
Jetzt kommt eine Zeile die einfach ausgedrückt die Überprüfung von angegebenen Parametern startet.
Code:
case "$1" in
Nun zur eigendlichen Überprüfung, will man z.B. sicherstellen das der Parameter "start" ist
fängt man mit
Code:
start)
an "start ist in diesem fall der Parametername.
nun folgen die Befehle die ausgeführt werden sollen wenn der Parameter übereinstimmt.
in meinem Fall wird der Server in einem Screen gestartet und danach die Meldung ausgegegben,
dass der Server gestartet wird.
Code:
             	screen -A -m -d -S minecraft_server java -Xmx8192M -Xms8192M -jar /home/lexat/mc_new/craftbukkit.jar

             	echo "Server wird gestartet, screen -r eingeben um den Serverlog anzuzeigen."
wenn es noch andere Mögliche Parameter gibt, muss jetzt dafür gesorgt werden, dass das Script bzw. der Interpreter weiss,
das jetzt der nächste Parameter und die dazugehörigen Befehle kommen.
Dies geschiet einfach durch zwei ";"
Code:
;;
War dies jedoch der letzte mögliche Parameter benötigt man diesen Schritt nicht.
mit
Code:
esac

exit 0
wird das Script nun Abgeschlosssen.

Ist das Script nun fertig und mit chmod direkt ausführbar gemacht,
kann man es einfach mit "./dateiname" starten.

im Fall von meinem Script was ich oben gepostet habe,
wird beim Ausführen von:
"./startscript.sh start" Der MC-Server wird gestartet und die Meldung ausgegeben das der MC-Server gestartet wurde.
"./startscript.sh stop" Der Befehl "stop" direkt an den Screen geschickt was den MC-Server veranlasst sich zu beenden.
"./startscript.sh clear" Die Datei "server.log" geleert.
"./startscript.sh backup" ein Backup des Minecraftservers erstellt in einem TAR Archiv zusammengefasst und mit gzip komprimiert.
"./startscript.sh view" der Screen geöffnet um die Konsole vom MC-Server zu sehen.

Sollte kein Parameter angegeben werden, wie z.B. "start" oder "stop"
wird die Meldung ausgegeben wie denn das Script zu Benutzen ist.
Verwende: ./startscript.sh {start|stop|clear|backup|view}

Ich hoffe es hilft wenigstens ein paar Leuten weiter,

g. DevNull aka LeXaT

/edit auf wunsch von Jobsti "save-all" in den Stopbefehl eingebaut
 

DevNull

Schafhirte
Registriert
5 August 2012
Beiträge
107
Diamanten
0
erikmarcel123

bevor du irgendwo im Forum postest oder einen Thread eröffnest solltest du
die ForenRegeln lesen die sind da -> Foren- und Verhaltensregeln
zu finden.
Wenn du Probleme mit deinem Server hast, solltest du
einen Thread in der Passenden Kategorie eröffnen und
dort eine Beschreibung deines Problems angeben.

PS: "geht nicht" ist keine Problembeschreibung!

g. DevNull
 

Jobsti

Server Opa ;-)
Registriert
18 August 2011
Beiträge
1.226
Diamanten
300
Minecraft
Jobsti
Kompressions-Level kannste noch mit angeben, somit kann man wählen ob Vollgas, oder einfach nur ohne Kompression packen, für schwache Server.

Vor dem /stop, sollte definitiv erst ein /save-all kommen!
 
Status
Für weitere Antworten geschlossen.
Oben