Archiv

Archiv für die Kategorie ‘Linux’

Teamspeak 3 Backup und Watchdog unter Linux: TS3BACKUP

28. September 2011 Keine Kommentare

Teamspeak LogoEinen Teamspeak 3 Server aufsetzen kann so fast ein jeder – aber wie sichert man diesen? Seit Teamspeak 3 kommt eine Datenbank anstelle des Textfiles für die Konfigurationen und Benutzerdaten zum Einsatz. Diese SQLLite Datenbank des Teamspeak 3 macht eine einfache Sicherung etwas schwieriger, da man Datenbanken nicht “online” wegsichern sollte – zumindest nicht wenn man mit der Datenbankkopie später noch etwas anfangen können möchte.

Da mir meine Teamspeak 3 Datenbank auch einmal schon um die Ohren geflogen ist, bin ich was das Backup angeht etwas sensibilisiert, auch wenn es “nur” mein kleiner eigener Teamspeak 3 Server ist. Und wenn man sich schon hinsetzt und ein Backup Script schreibt, kann man doch auch gleich ein paar Mechanismen einbauen, welche regelmässig prüfen ob der Teamspeak 3 Server überhaupt läuft – und gegebenenfalls diesen auch gleich neu startet.

Ziel des Scriptes ist also zum einen eine regelmässige Datensicherung (einmal die Woche) des Teamspeak 3 Servers inklusive der Datenbanken, Files und Binaries, zum anderen eine kleine Überwachung.

Ich bin mittlerweile auch ein großer Freund von Syslog Servern geworden – also sollte mein kleines Teamspeak 3 Backup auch nicht in ein eigenes Logfile loggen, sondern gleich ins Syslog!

TS3BACKUP Features:

  • Teamspeak 3 Server Backup
  • Repository mit Wochensicherungen des ganzen Jahres
  • Watchdog ob der Teamspeak 3 Server online ist
  • Restart Funktionalität
  • Syslog Anbindung

TS3BACKUP Installationanleitung:

Schritt 1: Script downloaden, auf den Server entpacken und das Script direkt in das Teamspeak 3 Server Verzeichnis speichern.

Schritt 2: Das Script hat im oberen Bereich lediglich ein paar Settings die gemacht werden müssen (Pfad zur Teamspeak Installation, gewünschter Backuptag, gewünschte Backupuhrzeit sowie gewünschter Zielpfad zum Backupstorage.

Schritt 3: Verzeichnis erstellen, in welches die Teamspeak 3 Backups geschrieben werden sollen.

Schritt 4: Cronjob für root erstellen – ich habe einen Cronjob im 5-Minuten Takt für mein Teamspeak Backup erstellt, damit ich falls der Teamspeak Server mal absturzt nicht mal angerufen werde – er startet ja von selbst binnen 5 Minuten neu (und diese 5 Minuten warten die meisten bevor sie mich anrufen :) )!

Offene Punkte:

  • sudo Integration, damit der Teamspeak 3 Server nicht mehr als Root laufen muss.
  • FTP Target Option als Repository für die Datensicherungen
  • Option für optionales eigenes Logfile

Downloadlink zur aktuellen Version: Teamspeak 3 Backup & Watchdog Script (61)

LINUX ONLY!!! Dieses Script funktioniert nur unter Linux!!!
Bisher getestete Distributionen:

  • Ubuntu Server 10.04 64 Bit LTS
  • CentOS 5.3

Bei Wünschen oder Anmerkungen – jederzeit an mich wenden!  Setzt ihr mein Script ein, bitte zumind. einen kleinen Kommentar hinterlassen, schön wären auch ein paar Infos zur verwendetes Scriptversion, Teamspeakversion und eurer Distribution.

KategorienLinux, Scripts & Co, Shell Scripts Tags:

HowTo: Permanente Routen unter Ubuntu Linux

Ich letzter Zeit bon ich selbst immer wieder in die gleiche Falle gegangen: Route für ein bestimmtes Netz auf einem Server hinzugefügt (für meinen Zugriff via VPN) und nach einem Reboot – alles wieder weg, ergo keinen direkten Zugriff mehr. Und alles nur weil ich zu faul war mir zu merken wie ich permanente statische Route in Ubuntu erstelle. Das soll sich nun ändern – ich schreibe wie so oft einfach einen Blog dazu – und schon ist es unauslöschlich in meinem Kopf. Hier also:

HowTo: Permanente Routen unter Ubuntu Linux

Für ein Netzwerk eine Route zu erstellen ist ja (fast) allgemein bekannt, aber damit wir in diesem Artikel alle über das gleiche Netz sprechen, hier mein Beispiel für die Route die ich permanent hinzufügen möchte und nach jedem Reboot auch immer gleich online haben will:

route add -net 192.168.101.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0

Zu Deutsch: Alle Anfragen an und von IPs aus dem netzbereich von 192.168.101.1 bis 192.168.101.255 sollen über das Gateway 192.168.1.1 abgewickelt werden. Das Gateway ist über das Netzwerkinterface eth0 zu erreichen.

Wenn man dies nun so in die Konsole haut, funktioniert die Route gleich und sofort (sofern keine Tippfehler drin sind). jedoch ist diese Route nach einem Reboot wieder weg – und genau das wollen wir ja nicht, wir wollen einen permanente statische Route für dieses Netzwerk!

Um diese statische Route nun permanent zu machen, müssen wir die Datei “/etc/network/interfaces” editieren – ganz unten sammel ich meine Routen um die Übersichtlichkeit zu bewahren.

Wir ergänzen einfach die obige Zeile leicht ergänzt und angepasst:

up route add -net 192.168.101.0/24 gw 192.168.1.1 dev eth0

Mehr ist wirklich nicht zu tun – eine Route also nicht gleich hier einzutragen ist wahrlich nur Faulheit.

Aber hier nochmal kurz der Syntax für die Route:

up route add [-net|-host] / gw  dev

Welche Netzmaske ihr habt, solltet ihr wissen – wenn nicht, habt ihr ganz andere Probleme :)

VMware ESXi 4.1 – SSH & Konsole (re) aktivieren

Auf dem VMware ESXi in Version 4.0 war es noch relativ umständlich SSH zu reaktiveren (hier das alte HowTo). Auf dem neuerem VMware ESXi 4.1 ist es deutlich einfacher geworden! Bei Zugriff auf die VMware Konsole des Servers genügt:

  • Drücken der F2 Taste
  • Troubleshooting Options
  • SSH aktivieren

Viel einfacher geht es nicht. SSH lässt sich seit VMware ESXi 4.1 allerdings auch über den VMware vSphere Client aktivieren, einfach in die Options gehen. Näheres ist in der unten verlinken VMware Knowledge Database auch beschrieben.

Ich kann wie immer nur dem Weg über die Konsole empfehlen – VMware Hardcare Konfigurationen nimmt man einfach ohne GUI vor – das gehört sich so!

Weblinks:

KategorienLinux, VMware Tags: , , , , , ,

VMware ESXi 4.0 – SSH (re) aktivieren

VMware ESXi 4.0 – SSH (re) aktivieren
SSH Zugriff auf ESX Server ist etwas an das man sich gewähnt hat und das man oftmals auch braucht. Leider hat VMware beim ESXi 4 eben diesen SSH Zugriff deaktiviert. Selbst an die Konsole, also den Linux Teil des ESX, kommt man nur mir Tricks.

Leider sind diese Tricks durch VMware in keinster Weise supported, aber was stört das, wenn dafür SSH und Konsole auf dem ESXi wieder benutzbar werden?

Trick 1: Zugriff auf die Konsole nehmen
Sobald der ESXi Server hochgefahren ist, also der “Wellcomescreen” zu sehen ist, direkt am VMware ESXi Server auf der Tastatur ALT-F1 drücken, nicht wundern das man keinen Cursor sieht und das Wort “unsupported” ohne “” eintippen, die Eingabe mit ENTER bestätigen. Wenn man sich nicht vertippt hat, wird nun das Rootkennwort abgefragt -> eingeben und hat Zugriff auf die Konsole des ESXi Servers!

Trick 2: SSH (re)aktivieren
Sobald man sich wie in Trick 1 beschrieben Zugriff auf die ESXi Konsole ermöglicht hat, öffnet man sich direkt auf dem VMware ESXi mit dem vi die Datei /etc/inetd.conf
Hier entfernt man mit dem vi an den beiden Zeilen für SSH das führende # (einfach den Cursor dort hinbewegen und einmal x drücken, danach bei Zeile 2 das Ganze einfach nochmal, speicher und beenden des vi geht mit :wq – den Doppelpunkt wirklich mittippen!). Danach sollte die Sektion in etwa so aussehen:

# Remote shell access #
ssh stream tcp nowait root /sbin/dropbearmulti dropbear ++min=0,swap,group=shell -i -K60
ssh stream tcp6 nowait root /sbin/dropbearmulti dropbear ++min=0,swap,group=shell -i -K60

Nun am besten den VMware ESXi Server durchbooten, um die Änderungen wirksam werden zu lassen. Sollte ein Reboot des Systems nicht so einfach möglich sein (das soll ja bei produktiven Servern manchmal zu ungemütlichen Telefonanrufen führen), muß der inetd manuell neu gestartet werden.

Trick 3: inetd manuell neu starten
Zuerst muss die Prozess ID des inetd ermittelt werden. Dies macht man auch direkt auf der Konsole des VMware ESXi, mit dem Kommando:

ps aux |grep inetd

Die Ausgabe des Kommandos sollte in etwa so aussehen:

4896 4896 busybox inetd

Die erste und zweite Spalte der Ausgabe ist die Prozess ID! Diesen Prozess beenden wir dann manuell mit dem Kommando:

kill -HUP PID

Wobei PID für die zuvor ermittelte Prozess ID steht! Nun sollte der SSH Zugriff funktionieren. Alles weitere was man nun machen muß um sich per SSH mit dem VMware ESXi Server zu verbinden, solltet ihr selbst wissen ;)

KategorienLinux, VMware Tags: , , , , , ,

Netzwerkkarte / IP Adresse unter Debian / Ubuntu konfigurieren

Netzwerkkonfiguration per Kommandozeile
Gerade heute habe ich wieder mal von einem Kunden die Anfrage bekommen, wie er denn seine Netzwerkkonfiguration an seinem Linux Server ändern kann – schließlich habe er ja gar keine GUI zum konfigurieren der eth Interfaces zur Verfügung und ein Yast gibt es auf Debian Systemen (zum Glück) auch nicht. Schnell hatte ich ihm per Telefon erklären können wie er als Beispiel eth0 unter Debian konfigurieren kann – das die Netzwerkkonfiguration unter Linux so einfach “zu lesen” ist, wollte er mir zu Anfang gar nicht glauben.

Da dies abermals ein Thema ist, welches mir öfter mal begegnet, denke ich das es an der Zeit ist hier auf meinem Blog die Konfiguration der IP Adressen auf die eth Interfaces von Debian basierenden Linuxsystemen zu erklären (ja, Ubuntu ist auch ein “Debian Derivat”)

Statische IP Adresse auf eth0 vergeben
In der Datei /etc/network/interfaces muss nur das nachfolgende eingetragen / konfiguriert werden, dabei dürfen jedoch keine Einträge die mit lo Interface zu tun haben entfernt oder geändert werden. Lo ist der sogenannte Loopbackadapter und für den Betrieb des Systems zwingend so wie er da steht erforderlich!

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.2
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

Zuer Erklärung: “auto eth0″ steht für einen automatischen Start des Interface beim booten. Wenn dieser Eintrag fehlt, müsste man das Interface eth0 von Hand aktivieren, was manchmal schwer fällt, wenn zum Beispiel der Server nur über Netzwerk erreicht werden kann (wie bei Root Servern oder anderen entfernten Servern der Fall).
“address” ist die IP Adresse die auf das eth0 Interface gelegt werden soll.
“gateway” steht für das default Gateway und ist für ein sauberes Routing unabdinglich – es sei denn man definiert es im nachhinein per Hand nach.
“netmask” steht für die Netzmaske – was das ist erkläre ich später mal – von seinem Provider (bei Root Servern) erhält man diese Angabe meist mit, bei einem LAN Server ist die Netzmaske meist wie hier im Beispiel 255.255.255.0 – sprich ein Class C Netzwerk von 192.168.1.0 bis 192.168.1.255 (wobei hier die .0 und .255 reserviert sind und nicht verwendet werden dürfen, siehe “network und “broadcast”)
“network” definiert nochmal das Netz in dem sich der Server befindet – wobei hier die vereinfachte Schreibweise verwendet wird.
“broadcast” am besten hier nachlesen: 7070

In der Datei /etc/resolv.conf wird nun definiert über welche DNS Server, oder auch Nameserver, dieNamensauflösung stattfinden soll und über den Eintrag “search” wird definiert in welcher Domain Linux suchen soll, wenn bei einem Serverrequest kein Domainname mit angegeben wird.

search domain.local
nameserver 192.168.1.1

IP Adresse für eth0 über DHCP
Hier muss ebenfalls natürlich das eth0 definiert werden, die Werte für die IP Adresse etc kommen aber über den DHCP Server, man braucht sie also nicht mit eintragen. Einfacher als eine DHCP IP Adress Konfiguration geht es, wie man sieht, kaum noch.

# The primary network interface
auto eth0
iface eth0 inet dhcp

Zweite IP Adresse auf ein Netzwerk Interface legen
Wenn die zweite IP Adresse statisch vergeben werden soll, kann man dies durch sogenannte virtuelle Interfaces machen. Dazu wird die Konfiguration des physikalischen Interfaces quasi kopiert und hinter den Namen einfach ein :Nr gehängt. Im Falle von ETH0 würde das erste virtuelle Interface also beispielsweise so aussehenen:

# The primary network interface - second IP address
auto eth0:1
iface eth0:1 inet static
address 192.168.1.3
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

Für eine zweite IP Adresse für eth0 über DHCP sieht das dann wie folgt aus:

auto eth0:1
iface eth0:1 inet dhcp

Weblinks:

  • http://www.debianadmin.com/ubuntu-networking-for-basic-and-advanced-users.html

UPDATE:
Es geht natürlich auch der nachfolgende Befehl “ip addr add 192.168.1.12/24 dev eth0″