Fireball22
Registered User
Hallo,
nach meinem einwöchigen Italien-Urlaub hab ich mir die in einem anderen Thread genannten BASH-Syntaxen durchgelesen und jetzt mein erstet BASH-Script geschrieben.
Nur funktioniert es anscheinend noch nicht ganz, wegen irgendeinem Operator-Fehler, aber ich glaube da habe ich so eine komische If-Syntax noch nicht ganz richtig verstanden, aber ich bekomme das einfach nicht hin, keine Ahnung woran es da genau liegt...
Und ist das Script so OK oder muss man da noch was dran verbessern?
Hier ist es:
Fireball22
EDIT:
Achja, fast hätte ich es vergessen:
Es sind noch einige unmögliche stellen im Script, da ich nicht so richtig weiß wie ich jetzt einen speziellen Code mit einem speziellen User in einem Screen ausführe und diesen dann wieder in den Hintergrund stecke ohne ihn zu schließen!
Wie geht denn das Codemäßig?
nach meinem einwöchigen Italien-Urlaub hab ich mir die in einem anderen Thread genannten BASH-Syntaxen durchgelesen und jetzt mein erstet BASH-Script geschrieben.
Nur funktioniert es anscheinend noch nicht ganz, wegen irgendeinem Operator-Fehler, aber ich glaube da habe ich so eine komische If-Syntax noch nicht ganz richtig verstanden, aber ich bekomme das einfach nicht hin, keine Ahnung woran es da genau liegt...
Und ist das Script so OK oder muss man da noch was dran verbessern?
Hier ist es:
Code:
#!/bin/bash
# Startprogramm für den SHOUTCasting-Server
#################################### KONFIGURATION ########################################
###########################################################################################
## Pfad zur Datei sc_serv des SHOUTCasting-Servers (Dateinamen nicht mehr mit angeben)
patch_shoutcast="/home/shoutcast"
###########################################################################################
## Screens zur Überwachung des Servers verwenden (Aufrufbar mit screen -r sc1) ( 0 = Aus / 1 = Ein)
use_screen="1"
###########################################################################################
## Speziellen Benuzter wählen der den SHOUTCasting-Server starten soll (Erhöht die Sicherheit; User muss angelegt sein) ( 0 = Aus / 1 = Ein)
use_user="1"
username="shoutcast"
###########################################################################################
#################################### KONFIGURATION ENDE ###################################
if [ $use_user="1" ] ;
then
su $username
fi
case "$1" in
start)
if [ $start = "0" ] ;
then
if [ $use_screen = "1" ] ; #Falls Screen aktiviert
then
screen -S sc1 && "$patch_shoutcast""/sc_serv"
if [ $? = "0" ] ; #Wenn Kommando fehlerfrei, dann Variable auf gestartet setzen
then
echo "done"
start = "1"
export start
else
echo "false"
fi
else #Falls Screen nicht aktiviert oder nicht eindeutig
"$patch_shoutcast""/sc_serv"
if [ $? = "0" ] ; #Wenn Kommando fehlerfrei, dann Variable auf gestartet setzen
then
echo "done"
start = "1"
export start
else
echo "false"
fi
fi
else
echo "Server scheint bereits online zu sein!"
fi;;
restart)
if [ $start = "1" ] ;
then
if [ $use_screen = "1" ] ;
then
screen -r sc1 && killall -9 "$patch_shoutcast""/sc_serv" && "$patch_shoutcast""/sc_serv"
if [ $? = "0" ] ;
then
echo "done"
start = "0"
export start
else
echo "false"
fi
else
killall -9 "$patch_shoutcast""/sc_serv" && "$patch_shoutcast""/sc_serv"
if [ $? = "0" ] ;
then
echo "done"
start = "0"
export start
else
echo "false"
fi
fi
else
echo "Der Server scheint nicht online zu sein, bitte erst starten!"
fi;;
status)
if [ $start = "1" ] ;
then
echo "Server scheint online zu sein!"
elif [ $start = "0" ] ;
then
echo "Server scheint offline zu sein!"
fi;;
stop)
if [ $start = "1" ] ;
then
if [ $use_screen = "1" ] ;
then
screen -r sc1 && killall -9 "$patch_shoutcast""/sc_serv"
if [ $? = "0" ] ;
then
echo "done"
else
echo "false"
fi
else
killall -9 "$patch_shoutcast""/sc_serv"
if [ $? = "0" ] ;
then
echo "done"
else
echo "false"
fi
fi
elif [ $start = "0" ] ;
then
echo "Server scheint nicht online zu sein, bitte erst starten!"
fi;;
*)
echo "Syntax: \n"
echo "shoutcast (start|stop|status|restart)"
exit 2
;;
esac
Fireball22
EDIT:
Achja, fast hätte ich es vergessen:
Es sind noch einige unmögliche stellen im Script, da ich nicht so richtig weiß wie ich jetzt einen speziellen Code mit einem speziellen User in einem Screen ausführe und diesen dann wieder in den Hintergrund stecke ohne ihn zu schließen!
Wie geht denn das Codemäßig?
Last edited by a moderator: