24.11.2012, 23:40
Hallo zusammen liebe Community,
hier möchte ich gerne mal vorstellen, was ich heute geschrieben habe. Es handelt sich um eine umgeschriebene Version von dem Startscript, welches Teamspeak einem bietet. Dies kann nun nicht nur starten, stoppen und neu starten, sondern auch einen Server installieren bzw. diesen Server updaten.
Es ist noch einiges verbesserungswürdig und ich muss mich für mein ungeschicktes Coding entschuldigen, schließlich programmiere ich noch nicht lange und dann bestimmt kein Shell ;-)
Vorführvideo: [Link: Registrierung erforderlich]
Hier habt ihr die Skripts, die werden bald vielleicht noch zu einem zusammengefasst:
Dies ist für x86, getestet auf Debian 6.0, so weit ich sagen kann funktionstüchtig.
Dateiname: ts3_x86.sh
hier möchte ich gerne mal vorstellen, was ich heute geschrieben habe. Es handelt sich um eine umgeschriebene Version von dem Startscript, welches Teamspeak einem bietet. Dies kann nun nicht nur starten, stoppen und neu starten, sondern auch einen Server installieren bzw. diesen Server updaten.
Es ist noch einiges verbesserungswürdig und ich muss mich für mein ungeschicktes Coding entschuldigen, schließlich programmiere ich noch nicht lange und dann bestimmt kein Shell ;-)
Vorführvideo: [Link: Registrierung erforderlich]
Hier habt ihr die Skripts, die werden bald vielleicht noch zu einem zusammengefasst:
Dies ist für x86, getestet auf Debian 6.0, so weit ich sagen kann funktionstüchtig.
Dateiname: ts3_x86.sh
Code:
#!/bin/bash
# Copyright (c) 2010 TeamSpeak Systems GmbH
# All rights reserved
# Zusätzliche Features von Madmatti
#
# I DO NOT GIVE ANY WARRANTY THAT THIS SCRIPT WILL WORK PROPERLY.
# DO NOT USE THIS SCRIPT IN A COMMERCIAL ENVIRONMENT! ! !
# USING THIS SCRIPT IS ON YOUR OWN RISK
#
# ICH GEBE KEINE GARANTIE, DASS DAS SKRIPT RICHTIG FUNKTIONIERT.
# BENUTZE DIESES SKRIPT AUF KEINEN FALL IN EINER KOMMERZIELLEN UMGEBUNG! ! !
# BENUTZUNG DES SKRIPTS AUF EIGENE GEFAHR
case "$1" in
start)
cd /home/ts3/teamspeak3-server_linux-x86
echo "Instanz wird initialisiert..."
if [ -e ts3server.pid ]; then
if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then
echo "Der Server läuft bereits. Versuche die Parameter stop oder restart."
exit 1
else
echo "Es wurde ts3server.pid gefunden, aber es laufen keine Server. Server gecrasht?"
echo "Bitte die logfiles für mehr Infos einsehen."
rm ts3server.pid
fi
fi
if [ "${UID}" = "0" ]; then
echo ACHTUNG ! Aus Sicherheitsgründen empfielt Teamspeak: Starte den Server NICHT als Root
c=1
while [ "$c" -le 10 ]; do
echo -n "!"
sleep 1
c=$((++c))
done
echo "!"
fi
echo "Starte den TeamSpeak 3 Server"
if [ -e "$BINARYNAME" ]; then
if [ ! -x "$BINARYNAME" ]; then
echo "${BINARYNAME} ist nicht ausführbar, versuche nun, die Datei ausführbar zu machen."
chmod u+x "${BINARYNAME}"
fi
if [ -x "$BINARYNAME" ]; then
export LD_LIBRARY_PATH="${LIBRARYPATH}:${LD_LIBRARY_PATH}"
"./${BINARYNAME}" ${COMMANDLINE_PARAMETERS} > /dev/null &
echo $! > ts3server.pid
echo "TeamSpeak 3 Server wurden erfolgreich gestartet, siehe Logfiles für mehr Informationen."
else
echo "${BINARNAME} ist nicht ausführbar, Server konnte nicht gestartet werden."
fi
else
echo "Kann die Binaries nicht finden, breche ab."
exit 2
fi
;;
stop)
cd /home/ts3/teamspeak3-server_linux-x86
echo "Instanz wird gestoppt..."
if [ -e ts3server.pid ]; then
echo -n "Stoppe den TeamSpeak 3 Server"
if ( kill -TERM $(cat ts3server.pid) 2> /dev/null ); then
c=1
while [ "$c" -le 300 ]; do
if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then
echo -n "."
sleep 1
else
break
fi
c=$((++c))
done
fi
if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then
echo "Server fährt sich nicht sauber herunter - killing"
kill -KILL $(cat ts3server.pid)
else
echo "fertig"
fi
rm ts3server.pid
else
echo "Es läuft kein Server (ts3server.pid nicht vorhanden)"
exit 3
fi
;;
restart)
$0 stop && $0 start || exit 4
;;
install)
adduser ts3
cd /home/ts3
wget http://teamspeak.gameserver.gamed.de/ts3/releases/3.0.6.1/teamspeak3-server_linux-x86-3.0.6.1.tar.gz -O teamspeak3.tar.gz
tar xfvz teamspeak3.tar.gz
chown -R ts3:ts3 teamspeak3-server_linux-x86
cd /home/ts3/teamspeak3-server_linux-x86
chmod +x ts3server_startscript.sh ts3server_minimal_runscript.sh ts3server_linux_x86
su -c "./ts3server_minimal_runscript.sh > data.txt" ts3
echo "Alle Daten stehen in der Datei data.txt"
echo "Sollten keine Fehlermeldungen aufgetreten sein, so ist der Server nun fertig installiert!"
echo "Falls es dir gefallen hat, besuche doch meinen Youtube Kanal unter http://www.youtube.com/user/Madmatti94"
;;
update)
cp ts3_x86.sh /home/ts3/teamspeak3-server_linux-x86
echo "Update wird ausgeführt..."
cd /home/ts3/teamspeak3-server_linux-x86
su -c "$0 stop" ts3
cd ..
wget http://teamspeak.gameserver.gamed.de/ts3/releases/3.0.6.1/teamspeak3-server_linux-x86-3.0.6.1.tar.gz -O teamspeak3.tar.gz
tar xfvz teamspeak3.tar.gz
chown -R ts3:ts3 /home/ts3
cd /home/ts3/teamspeak3-server_linux-x86
su -c "$0 start" ts3
echo "Sollten keine Fehlermeldungen aufgetreten sein, so ist der Server nun fertig geupdated!"
echo "Falls es dir gefallen hat, besuche doch meinen Youtube Kanal unter http://www.youtube.com/user/Madmatti94"
;;
*)
echo "Falsche Benutzung. Bitte mit einem der folgenden Parameter ausführen: $0 (start/stop/restart/install/update)"
exit 5
;;
esac
exit 0
Dieses ist für amd64, von mir ungetestet, ist aber abgesehen von Pfaden und Downloadlinks identisch.
Dateiname: ts3_amd64.sh
Code:
#!/bin/bash
# Copyright (c) 2010 TeamSpeak Systems GmbH
# All rights reserved
# Zusätzliche Features von Madmatti
#
# I DO NOT GIVE ANY WARRANTY THAT THIS SCRIPT WILL WORK PROPERLY.
# DO NOT USE THIS SCRIPT IN A COMMERCIAL ENVIRONMENT! ! !
# USING THIS SCRIPT IS ON YOUR OWN RISK
#
# ICH GEBE KEINE GARANTIE, DASS DAS SKRIPT RICHTIG FUNKTIONIERT.
# BENUTZE DIESES SKRIPT AUF KEINEN FALL IN EINER KOMMERZIELLEN UMGEBUNG! ! !
# BENUTZUNG DES SKRIPTS AUF EIGENE GEFAHR
case "$1" in
start)
cd /home/ts3/teamspeak3-server_linux-amd64
echo "Instanz wird initialisiert..."
if [ -e ts3server.pid ]; then
if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then
echo "Der Server läuft bereits. Versuche die Parameter stop oder restart."
exit 1
else
echo "Es wurde ts3server.pid gefunden, aber es laufen keine Server. Server gecrasht?"
echo "Bitte die logfiles für mehr Infos einsehen."
rm ts3server.pid
fi
fi
if [ "${UID}" = "0" ]; then
echo ACHTUNG ! Aus Sicherheitsgründen empfielt Teamspeak: Starte den Server NICHT als Root
c=1
while [ "$c" -le 10 ]; do
echo -n "!"
sleep 1
c=$((++c))
done
echo "!"
fi
echo "Starte den TeamSpeak 3 Server"
if [ -e "$BINARYNAME" ]; then
if [ ! -x "$BINARYNAME" ]; then
echo "${BINARYNAME} ist nicht ausführbar, versuche nun, die Datei ausführbar zu machen."
chmod u+x "${BINARYNAME}"
fi
if [ -x "$BINARYNAME" ]; then
export LD_LIBRARY_PATH="${LIBRARYPATH}:${LD_LIBRARY_PATH}"
"./${BINARYNAME}" ${COMMANDLINE_PARAMETERS} > /dev/null &
echo $! > ts3server.pid
echo "TeamSpeak 3 Server wurden erfolgreich gestartet, siehe Logfiles für mehr Informationen."
else
echo "${BINARNAME} ist nicht ausführbar, Server konnte nicht gestartet werden."
fi
else
echo "Kann die Binaries nicht finden, breche ab."
exit 2
fi
;;
stop)
cd /home/ts3/teamspeak3-server_linux-amd64
echo "Instanz wird gestoppt..."
if [ -e ts3server.pid ]; then
echo -n "Stoppe den TeamSpeak 3 Server"
if ( kill -TERM $(cat ts3server.pid) 2> /dev/null ); then
c=1
while [ "$c" -le 300 ]; do
if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then
echo -n "."
sleep 1
else
break
fi
c=$((++c))
done
fi
if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then
echo "Server fährt sich nicht sauber herunter - killing"
kill -KILL $(cat ts3server.pid)
else
echo "fertig"
fi
rm ts3server.pid
else
echo "Es läuft kein Server (ts3server.pid nicht vorhanden)"
exit 3
fi
;;
restart)
$0 stop && $0 start || exit 4
;;
install)
adduser ts3
cd /home/ts3
wget http://teamspeak.gameserver.gamed.de/ts3/releases/3.0.6.1/teamspeak3-server_linux-amd64-3.0.6.1.tar.gz -O teamspeak3.tar.gz
tar xfvz teamspeak3.tar.gz
chown -R ts3:ts3 teamspeak3-server_linux-amd64
cd /home/ts3/teamspeak3-server_linux-amd64
chmod +x ts3server_startscript.sh ts3server_minimal_runscript.sh ts3server_linux_amd64
su -c "./ts3server_minimal_runscript.sh > data.txt" ts3
echo "Alle Daten stehen in der Datei data.txt"
echo "Sollten keine Fehlermeldungen aufgetreten sein, so ist der Server nun fertig installiert!"
echo "Falls es dir gefallen hat, besuche doch meinen Youtube Kanal unter http://www.youtube.com/user/Madmatti94"
;;
update)
cp ts3_amd64.sh /home/ts3/teamspeak3-server_linux-amd64
echo "Update wird ausgeführt..."
cd /home/ts3/teamspeak3-server_linux-amd64
su -c "$0 stop" ts3
cd ..
wget http://teamspeak.gameserver.gamed.de/ts3/releases/3.0.6.1/teamspeak3-server_linux-amd64-3.0.6.1.tar.gz -O teamspeak3.tar.gz
tar xfvz teamspeak3.tar.gz
chown -R ts3:ts3 /home/ts3
cd /home/ts3/teamspeak3-server_linux-amd64
su -c "$0 start" ts3
echo "Sollten keine Fehlermeldungen aufgetreten sein, so ist der Server nun fertig geupdated!"
echo "Falls es dir gefallen hat, besuche doch meinen Youtube Kanal unter http://www.youtube.com/user/Madmatti94"
;;
*)
echo "Falsche Benutzung. Bitte mit einem der folgenden Parameter ausführen: $0 (start/stop/restart/install/update)"
exit 5
;;
esac
exit 0
Hoffe es gefällt euch! Ich mache mich jedoch schonmal auf eine Flut von Verbesserungsvorschlägen gefasst, da ich, wie gesagt, reiner Hobbyprogrammierer bin. Dies ist auch nur eine erste Fassung, es wird sich noch so einiges verändern ;-)
Liebe Grüße
Madmatti