Datentransfer mit Forwarding über mehrere Server

03.11.2010, 14:49 Uhr

Beitrag von: chris

Gerade stand ich vor der Aufgabe, dass von einem Datenbankserver ein 120 GB Dump auf einen Webserver übertragen werden sollte. Aufgrund diverser Firewallbeschränkungen konnte aber der Webserver den Datenbankserver nicht direkt erreichen - der Transfer musste damit über einen Gatewayserver geleitet werden. Unglücklicherweise waren auf dem Gatewayserver keine 120 GB Platz frei, um die Daten dort temporär zwischenzuspeichern. Einfachste und sinnvollste Lösung war damit, die ssh-Verbindung durch diesen Server durchzuschleifen.

Die Konfiguration ist denkbar einfach:

ssh -R 2222:datenbankserver:22 gatewayserver

also eine Anmeldung am Gatewayserver per ssh mit dem zusätzlichen Parameter "-R 2222:datenbankserver:22", der dafür sorgt, dass Zugriffe auf Port 2222 des gatewayservers durchgeschleift an Port 22 des Datenbankservers gesendet werden.

Auf dem Gatewayserver konnte ich dann direkt per scp meinen Dump kopieren:

scp -P 2222 username@localhost:/pfad/zum/dump.dmp .

Wichtig war dabei nur den Port 2222 anzugeben und als Hostnamen localhost zu wählen, da ich ja auf den durchgeschleiften Server muss. Der Username muss ausserdem natürlich auf dem Datenbankserver existieren.


Tipp am Rande: Um mich nicht ganz so viel mit username@servername rumschlagen zu müssen, habe ich auf dem Gatewayserver unter ~/.ssh/config einige Einträge gemacht, die einem Kurznamen den Hostnamen und Usernamen zuordnen. z. B.

Host datenbankserver
User meinName
Hostname dbserver.name.tld


Der Platz- und RAM-Verbrauch für die Übertragung war auf dem Gatewayserver übrigens minimal, die CPU war auf dem System allerdings durchgängig mit ca. 20% ausgelastet.


Kommentare (0)


Christophs Weblog
http://weblog.christoph-probst.com/article.php/20101103144945888