TeamSpeak 3 Server Update automatisieren

    • Offizieller Beitrag

    Hallo liebe Community,


    aufgrund des umständlichen Update Prozesses der TeamSpeak 3 Server, habe ich eigenständig ein Skript zur Automatisierung dieses Prozesses entwickelt. Das Skript bietet folgende Vorteile:

    • Automatische Überprüfung auf neuere Server Version
    • Kann mehrere TeamSpeak 3 Server gleichzeitig aktualisieren
    • Automatische Erkennung der TeamSpeak 3 Server Installationsverzeichnisse
    • Neue Dateien erhalten automatisch die zuvor zugewiesene Benutzer- und Gruppenzuordnung
    • Alte Log-Dateien können automatisiert mit gelöscht werden
    • Wenn ein Update gestartet wird, können alle Clients auf allen Servern per benutzerdefinierte Poke-Nachricht informiert werden
    • Keine Konfiguration des Skripts notwendig
    • Voll automatisierter Update-Prozess deines TeamSpeak 3 Servers
    • Cronjob Unterstützung - automatisiere den Update Prozess vollständig, sodass du nie wieder einen Update Prozess durchführen oder antriggern musst


    Da es einige skeptische Leute gibt, erkläre ich auch gerne noch, was das Skript tut. :)

    • Überprüft, ob der benutzerdefinierte Poke-Text der Maximal-Länge entspricht (wenn der entsprechende Parameter gesetzt ist)
    • Sucht die aktuelle TeamSpeak 3 Server Version bei teamspeak.com
    • Sucht nach TeamSpeak 3 Server Installationsverzeichnissen auf deinem physischen Server
    • Für jedes gefundene Verzeichnis wird dann folgendes ausgeführt:

      • Dateiberechtigungen werden analysiert und gemerkt
      • Installierte TeamSpeak 3 Server Version, Distributation (Linux oder FreeBSD) und Architektur (x86 oder x64) werden identifiziert
      • Überprüft, ob das serveradmin Passwort aus der "password-file" Datei korrekt ist (wenn der entsprechende Parameter gesetzt ist)
      • Identifiziert, ob SQLite oder MySQL benutzt wird
      • Identifiziert den ServerQuery Port
      • Identifiziert, ob TSDNS benutzt wird
      • Gibt eine Übersicht über das aktuelle Installationsverzeichnis aus
      • Wenn die installierte Version unbekannt oder älter als die aktuellste Version ist, wird gefragt, ob der Server geupdatet werden soll - ansonsten beendet sich das Skript mit den nötigen Informationen
      • Downloaded die aktuelle TeamSpeak 3 Server Version (passend zur installierten Version)
      • Informiert Benutzer über das Update (wenn der entsprechende Parameter gesetzt ist)
      • Stoppt TSDNS Server (wenn er gestartet ist)
      • Stoppt TeamSpeak 3 Server
      • Erstellt ein komplettes Backup des Servers in "/tmp/ts3server_backup/" (jedoch ohne den "files/" Ordner, da dort mehrere GB an Daten liegen könnten und das unter Umständen ewig dauert)
      • Löscht die alten Log-Dateien (wenn der entsprechende Parameter gesetzt ist)
      • Entpackt die neuen Server-Dateien in das Installationsverzeichnis des TeamSpeak 3 Servers
      • Passt die Rechte an den zuvor eingestellten Benutzer und die Gruppe an
      • Kopiert aus dem Backup die whitelist- und blacklist-Datei in das Installationsverzeichnis (zur Sicherheit)
      • Kopiert aus dem Backup den license- und serverkey in das Installationsverzeichnis (zur Sicherheit; falls vorhanden)
      • Kopiert aus dem Backup die ts3server.ini in das Installationsverzeichnis (zur Sicherheit; falls vorhanden)
      • Startet den TSDNS Server
      • Startet den TeamSpeak 3 Server
      • Wartet ein paar Sekunden und überprüft, ob der TeamSpeak 3 Server immer noch als Prozess läuft - falls nein, wird das Backup zurück gespielt


    • Informiert über den endgültigen Stand des Update Prozesses
    • Löscht temporäre Dateien (für die aktuelle Version wird eine Cache-Datei angelegt, um heraus zu finden, was die aktuelle Version ist; gedownloadete Server Archive werden ebenfalls gelöscht)


    Finden und downloaden könnt ihr dieses Skript auf der folgenden Seite: GitHub.com/TS3Tools


    Solltet ihr Fragen oder Probleme haben, könnt ihr gerne auf mich zu kommen. :)

  • hallo Sebbo


    bei dem Script zwecks autoupate kommt kurz nach dem er TSDNS startet dieser Fehler


    Starting TSDNS server No directory, logging in with HOME=/
    -su: 1: ./tsdnsserver_linux_amd64: not found
    [ FAILED ]
    No directory, logging in with HOME=/
    Starting the TeamSpeak 3 server


    nach dem er den Cronjob ausgeführt hat sollte er ja ne mail verschicken auch diese geht nicht raus


    Mein System Debian Wheezy 64Bit

    2 Mal editiert, zuletzt von Arisu ()

    • Offizieller Beitrag

    Hallo Arisu,


    danke für die Info. Ich werde mir das später gleich mal anschauen. :)


    Bzg. E-Mail kann das Skript nichts dafür. Du musst sicherstellen, dass dein Server E-Mails versenden kann. Wenn du also mit dem nachfolgenden Befehl eine E-Mail von deinem Server aus versenden kannst, wird das Skript das auch können. ;)

    Code
    echo "Dies ist eine Test E-Mail." | mail -s "Test Mail" receiver@example.com
  • echo "Dies ist eine Test E-Mail." | mail -s "Test Mail" xxx@xxx.xxx
    echo "Ich bin der Nachrichtentext" | mail -s "Testmail" xxx@xxx.xxx


    geht diese raus und kommt auch an


    // Edit by Sebbo: E-Mail wegen möglichen Spam-Opfer zensiert

    2 Mal editiert, zuletzt von Arisu ()

    • Offizieller Beitrag

    Ok, dann sollte es eigentlich auch beim Skript funktionieren.


    Hast du andere Cronjobs, von denen du E-Mails erhälst?


    Du kannst mal in der /var/log/mail.log nachschauen, was der Status des E-Mail Versands ist. Solltest dann sowas hier finden:

    Code
    Aug 29 01:45:02 hostname postfix/pickup[10718]: 1F989599: uid=0 from=<root>Aug 29 01:45:02 hostname postfix/cleanup[10406]: 1F989599: message-id=<20150828234502.1F989599@hostname>Aug 29 01:45:02 hostname postfix/qmgr[26395]: 1F989599: from=<root@hostname>, size=1098, nrcpt=1 (queue active)Aug 29 01:45:02 hostname postfix/smtp[11093]: 1F989599: to=<receiver@example.com>, relay=100.100.100.100[100.100.100.100]:25, delay=0.08, delays=0.01/0.04/0/0.04, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 2D2492E1)Aug 29 01:45:02 hostname postfix/qmgr[26395]: 1F989599: removed


    Mit dem Befehl "less" kannst du dir die Datei anzeigen lassen, während du darin dann mit "/receiver@example.com" (und Enter) nach einem passenden Eintrag suchen kannst. ;)

    Code
    less /var/log/mail.log


    Mit der Taste "N" gelangst du zum nächsten Suchergebnis, falls es ein weiteres geben sollte.

  • Dieses Thema enthält 19 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.