S
Snycs
Gast
Hallo ich habe eine Frage. Ich arbeite derzeit an einem Script, mit dem ich verschiedene Minecraftserver ansteuern kann. Aktuell muss ich für jeden Server eine eigene Funktion anlegen.
Ich möchte aber eine Config File erstellen die Ungefähr so aufgebaut ist:
Wie kann ich nun die Informationen aus der Config File auslesen und in das Script einbinden? Aktuell sieht das ganze so aus:
Ich möchte aber eine Config File erstellen die Ungefähr so aufgebaut ist:
Code:
server1:
VERZECHNIS
BESCHREIBUNG
server2:
VERZECHNIS
BESCHREIBUNG
server3:
VERZECHNIS
BESCHREIBUNG
...
Wie kann ich nun die Informationen aus der Config File auslesen und in das Script einbinden? Aktuell sieht das ganze so aus:
Code:
#!/bin/bash
BACKTITLE="Servermanager by Snycs"
INPUT=/tmp/menu.sh.$$
OUTPUT=/tmp/output.sh.$$
trap "rm $OUTPUT; rm $INPUT; exit" SIGHUP SIGINT SIGTERM
AKAMIE=/home/mc/
LOGFILE=/home/mc/Logs/Syslog_$(date +%d.%m.%Y).log
DATE=$(date +%d.%m.%Y_%H:%M:%S_Uhr)
DAY=$(date +%d.%m.%Y)
############################################################################################################
function fortschritt() {
{ for I in $(seq 1 100) ; do
echo $I
sleep 0.01
done
echo 100; } | dialog --backtitle "[ F O R T S C H R I T T ]" \ --gauge "Fortschritt" 6 60 0
}
############################################################################################################
function server() {
dialog --clear --backtitle "$BACKTITLE" \ --title "[ S E R V E R A U S W A H L ]" \ --menu "Die Server können mit den Pfeiltasten ausgewählt werden.\n\Bitte einen Server auswählen!" 15 50 7 \
Testserver "" \
Verlassen "Schliesst den Servermanager" 2>"${INPUT}"
MENUITEM=$(<"${INPUT}")
case $MENUITEM in
Testserver) testserver;;
Verlassen) echo "Bye"; break;;
esac
}
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function testserver() {
DIR=testserver
dialog --clear --backtitle "$BACKTITLE" \ --title "[ T E S T S E R V E R ]" \ --menu "Die Aktionen können mit den Pfeiltasten ausgewählt werden.\n\Bitte einen Server auswählen!" 15 50 4 \
Starten "Startet den Server." \
Stoppen "Stoppt den Server." \
Restart "Startet den Server neu." \
Status "Zeigt den Serverstatus an." \
Konsole "Geht in die Kosole" \
Edit "Den Server bearbeiten" \
Test "Das ist ein Testeintrag" \
Verlassen "Schliesst den Servermanager" 2>"${INPUT}"
MENUITEM=$(<"${INPUT}")
case $MENUITEM in
Starten) start;;
Stoppen) stop;;
Restart) restart;;
Status) status;;
Konsole) console;;
Edit) edit;;
Test) test;;
Verlassen) echo "Bye"; break;;
esac
}
#-----------------------------------------------------------------------------------------------------------
############################################################################################################
function start() {
if screen -list | grep -q "$DIR"; then
fortschritt
dialog --title '[ F E H L E R ]' --msgbox 'Der Server ist bereits gestartet!' 5 40
else
fortschritt
dialog --title '[ E R F O L G R E I C H ]' --msgbox 'Der Server wurde gestartet!' 5 50
cd $AKAMIE/$DIR/
bash start.sh
fi
}
function stop() {
if screen -list | grep -q "$DIR"; then
fortschritt
screen -S $DIR -X quit
if screen -list | grep -q "$DIR"; then
dialog --title '[ F E H L E R ]' --msgbox 'Der Server wurde nicht gestoppt!' 5 50
else
dialog --title '[ E R F O L G R E I C H ]' --msgbox 'Der Server wurde erfolgreich gestoppt!' 5 50
fi
else
dialog --title '[ F E H L E R ]' --msgbox 'Der Server ist nicht gestartet!' 5 50
fi
}
function restart() {
screen -S $DIR -X quit
fortschritt
cd $AKAMIE/$DIR/
bash start.sh
}
function console() {
screen -r $DIR
}
function edit () {
cd $AKAMIE/$DIR/
mc
}
function status () {
if screen -list | grep -q "$DIR"; then
dialog --title '[ S T A T U S ]' --msgbox 'Der Server ist gestartet!' 5 50
else
dialog --title '[ S T A T U S ]' --msgbox 'Der Server ist gestoppt!' 5 50
fi
}
############################################################################################################
function log () {
nano $LOGFILE
}
############################################################################################################
############################################################################################################
while true
do
dialog --clear --backtitle "$BACKTITLE" \
--title "[ H A U P T M E N Ü ]" \
--menu "Die verschiedenen Optionen können mit de Pfeiltasten ausgewählt werden.\n\
Bitte Aufgabe wählen!" 15 70 4 \
Server "Hier können die Server verwaltet werden." \
Backup "Hier können Backups erstellt werden." \
Log "Hiermit können die Logdateien eingesehen werden." \
Verlassen "Schliesst den Servermanager" 2>"${INPUT}"
MENUITEM=$(<"${INPUT}")
case $MENUITEM in
Server) server;;
Backup) backup;;
Log) log;;
Verlassen) echo "Bye"; break;;
esac
done
[ -f $OUTPUT ] && rm $OUTPUT
[ -f $INPUT ] && rm $INPUT