ts3 install script code example

Example: ts3 install script

#!/bin/bash

#########################################
# Teamspeak 3 Server Installer
# Version 3.12.1
# last Update 19.02.2020
# by SIGNALTRANSMITTER.de
#########################################

c=`tput setaf 6`
w=`tput setaf 7`
r=`tput setaf 1`
y=`tput setaf 3`

### DIESE VARIABLEN KOENNEN GEAENDERT WERDEN
#TEAMSPEAK USERNAME
user="teamspeak"

#INSTALLATIONS-PFAD
installdir="/home/$user/ts/"

#TEAMSPEAK VERSION
version="3.12.1"

############################################

x64="https://files.teamspeak-services.com/releases/server/$version/teamspeak3-server_linux_amd64-$version.tar.bz2"
x86="https://files.teamspeak-services.com/releases/server/$version/teamspeak3-server_linux_x86-$version.tar.bz2"

echo "Dieses Script installiert Teamspeak Server in der Version $r[$version]$w vollkommen automatisch. Die Funktion wird nicht garantiert! $w"
echo "$y[ ACHTUNG ] Um die Version anzupassen, bitte die Variablen im Script editieren!"

if [ -e /etc/locale.gen ]; then
    echo "$c[ INFO ]$w Locales werden installiert"
    sed -i "s/^# de_DE/de_DE/" /etc/locale.gen >/dev/null
    grep -v "^#" /etc/locale.gen >/dev/null
    /usr/sbin/locale-gen >/dev/null
    update-locale LANG=de_DE.UTF-8 >/dev/null
else
    echo "$c[ INFO ]$w Fehler beim konfigurieren von locales"
fi

if [ $(dpkg-query -W -f='${Status}' bzip2 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
    echo "$c[ INFO ]$w Installiere Abhängigkeit bzip2"
    apt-get update;
    apt-get install -y bzip2;
fi

if [ $(dpkg-query -W -f='${Status}' ca-certificates 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
    echo "$c[ INFO ]$w Installiere Abhängigkeit ca-certificates"
    apt-get update;
    apt-get install -y ca-certificates;
fi

ts3u=`cut -d: -f1 /etc/passwd | grep teamspeak`

if [ "$ts3" = "teamspeak" ]; then
    echo "$c[ INFO ]$w Der User $ts3u existiert schon. Bitte den User im Script anpassen."
    exit
else
    echo "$c[ INFO ]$w Erstelle Teamspeak-User..."
    useradd $user
fi

echo "$c[ INFO ]$w Die Installation beginnt automatisch in 5 Sekunden..."
sleep 5

if [ -d "$installdir" ]; then
    echo "$r[ ERROR ]$w Das Verzeichnis $installdir existiert bereits. Breche ab!"
    exit
else
    echo "$c[ INFO ]$w Das Verzeichnis $installdir existiert nicht. $installdir wird erstellt..."
    mkdir -p $installdir
fi

cd $installdir

if [ $(uname -m) == 'x86_64' ]; then
    #64bit
    wget -q $x64
    tar xfj teamspeak3-server_linux_amd64*
    echo "$c[ INFO ]$w Entferne gepacktes Archiv..."
    cd "teamspeak3-server_linux_amd64"
    mv * .. && cd .. && rm -rf teamspeak3-server_linux_amd64* && cd .. && chown -R $user:$user $installdir
    echo "$c[ INFO ]$w Der Teamspeak Server wird erstmalig gestartet..."
    cd $installdir
    touch .ts3server_license_accepted
    su -c "./ts3server_minimal_runscript.sh > ADMIN &" -s /bin/bash $user
    sleep 5 && ps aufwx | grep teamspeak | grep -v grep | awk '{print $2}'
    echo "$c[ INFO ]$w Bitte den Token sowie Serveradmin-Login gut hinterlegen..."
else
    #32bit
    wget -q $x86
    tar xfj teamspeak3-server_linux_x86*
    echo "$c[ INFO ]$w Entferne gepacktes Archiv..."
    cd "teamspeak3-server_linux_x86"
    mv * .. && cd .. && rm -rf teamspeak3-server_linux_amd64* && cd .. && chown -R $user:$user $installdir
    echo "$c[ INFO ]$w Der Teamspeak Server wird erstmalig gestartet..."
    touch .ts3server_license_accepted
    cd $installdir
    su -c "./ts3server_minimal_runscript.sh > ADMIN &" -s /bin/bash $user
    sleep 5 && ps aufwx | grep teamspeak | grep -v grep | awk '{print $2}'
    echo "$c[ INFO ]$w Bitte den Token sowie den Serveradmin-Login gut hinterlegen..."
fi

echo "$c[ INFO ]$w Soll Teamspeak in den Autostart installiert werden? [y/n]"
read -n1 -p "" autostart
case $autostart in
  y|Y)
     echo -e "\n$c[ INFO ]$w Der Startparameter wurde im Autostart hinterlegt."
     echo "su -c '$installdir/ts3server_startscript.sh start' -s /bin/bash $user" | tee --append /etc/rc.local > /dev/null
    ;;
    *)
     echo -e "\n$c[ INFO ]$w Der Startparameter wird$y nicht$w in den Autostart geschrieben."
    ;;
esac
echo "$c[ INFO ]$w Der Teamspeak Server wird nun automatisch gestartet..."

Tags:

Misc Example