Da ich letztens meinen Teamspeak3 Server gekillt habe, indem die Datenbank gecrasht ist, habe ich fix ein Script geschrieben, was stündlich Backups des Teamspeak3-Servers erstellt.
Das möchte ich natürlich nicht nur für mich behalten halten, sondern mit euch teilen ;)
Voraussetzungen
Wie immer müssen wir zunächst einige Programme installieren:
sudo apt-get install git-core crontab expect telnet
Nachdem alles fertig ist, können wir die meine Scripte übernehmen und anpassen.
Download & Konfiguration
Ich habe die beiden Scripte in ein Unterverzeichnis (backup/) im Teamspeak-Installationordner gepackt. Da man für das Einrichten eines Teamspeak-Servers unter Linux grundlegende Linuxkenntnisse braucht, erläute ich hier nicht weiter wie man den Ordner erstellt.
Das folgende Script dient zur Kommunikation zwischen Teamspeak3 Server und dem Backup-System, in dem es die Einstellungen des Server in eine Datei und einem Git-Repository abspeichert. Das ganze basiert auf dem Programm “expect”, mit dem man interactive Shell-Scripte schreiben kann:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Die Variable “passwd” ganz oben muss noch entsprechend eurem “serveradmin”-Passwort angepasst werden. Ggf. musst die Server-ID (use sid=1) angepasst werden.
Das speichern wir als Datei mit dem Namen “dump.exp.sh” ab.
Dann folgt nur noch das main-Script, welches alles “steuert” bzw. ausführt. Dieses Script speichern wir als “backup.sh” ab:
1 2 3 4 5 |
|
Wenn man möchte das das Backup-Script stündlich ausgeführt wird, dann muss man sein crontab bearbeiten. Dazu ruft man das folgende Kommando auf:
crontab -e
Man fügt dort eine Zeile ein, welche so ähnlich aussieht, wie die meine (ggf. müssen Pfade angepasst werden)
@hourly cd /home/teamspeak/teamspeak3-server_linux-amd64/backup && /bin/bash ./backup.sh
Was machen diese Scripte?
Das erste Script interagiert über telnet mit dem Teamspeak3 Server, indem es sich erst einloggt, dann den entsprechenden virtuellen Server setzt (use sid=1), danach einen Dump der Einstellungen erstellt und diesen in die Datei “lastdump.ts3” umleitet.
Das zweite Script führt das erste Script aus und schiebt die Änderungen am Dump in ein Git-Repository, damit wir im Zweifel auf ältere Einstellungen zurückgreifen können.
Einstellungen wieder einspielen
Laut Teamspeak-Documentation kann man die exportierten Einstellungen wieder importieren, in dem man folgende Schritte ausführt:
1 2 3 4 |
|
Fazit
Ihr habt so nun einen Teamspeak3 Server dessen Einstellungen stündlich in eine Datei bzw. ein Git-Repository exportiert werden, sodass ihr bei einem Crash den Server relativ einfach wiederherstellen können solltet.
Bitte verzeiht mir ggf. Rechtschreibfehler, aber es ist rel. spät und ich bin leicht angetrunken.
Gruß
gehaxelt