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.
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.
Jetzt kommt eine Zeile die einfach ausgedrückt die Überprüfung von angegebenen Parametern startet.
Nun zur eigendlichen Überprüfung, will man z.B. sicherstellen das der Parameter "start" ist
fängt man mit
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.
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 ";"
War dies jedoch der letzte mögliche Parameter benötigt man diesen Schritt nicht.
mit
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
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
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
Code:
case "$1" in
fängt man mit
Code:
start)
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."
das jetzt der nächste Parameter und die dazugehörigen Befehle kommen.
Dies geschiet einfach durch zwei ";"
Code:
;;
mit
Code:
esac
exit 0
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