Große Dateien von einem VMware ESX Server abholen
Große Dateien von einem ESX-Server abzuholen kann eine kleine Herausforderung sein, besonders wenn sie über eine langsame Leitung (z.B 100 Mbit) geholt werden müssen. Ich habe das über den Shell-Zugriff auf den VMware-ESX-Server erledigt. Der Zugriff muss natürlich erst einmal freigschaltet werden.
Für die Übertragung würde ein Linux-User sofort an rsync denken, um diese Aufgabe zu erledigen. Leider sind ESX-Server mit busybox als Shell sehr abgeschottet und unterstützen aktuell kein rsync mehr und busybox verhindert, dass nicht erwünschte Programm installiert werden können. Sie können zwar eingespielt aber nicht mehr ausgeführt werden. Das ist der Nachteil einer proprietären Lösung, die man sogar verstehen kann, denn der Hersteller ist dort für das was abläuft verantwortlich. Allerdings gibt es eine funktionierende Alternative: sftp. Mit sftp kann ich problemlos auf unsere Server zugreifen und auch große Dateien, notfalls mit einigen Unterbrechungen herunterladen. Falls die Verbindung abbricht, kann sftp neugestartet und der Download mit dem reget-Befehl fortgesetzt werden. Der Befehl für denDownload per sftp ist einfach und sollte für jeden Linux-Admin trivial sein. Ich will ihn hier trotzdem dokumentieren, weil dieser Blog für mich auch als großer Notizzettel fungiert:
sftp -o ServerAliveInterval=60 root@<ESX-Server>In meinem Fall war es etwas kryptischer, da ich über eine VPN-Verbindung die Daten vom Server geholt hatte, für die ich keinen direkten IP-Zugriff hatte. Also habe ich in der SSL-Verbindung ein Reverse-Forwarding über Port 6060 eingerichtet:
sftp -o ServerAliveInterval=60 -P 6060 root@localhostsftp stellt eine Shell zur Verfügung und so kann eine Datei mit
> get <Dateiname>geholt werden. Im Fall eines Abbruchs kann dann die Verbindung neu aufgebaut und die Übertragung per
> reget <Dateiname>fortgesetzt werden. Das Ganze habe ich durch ein Miniskript noch etwas vereinfacht, da ich einige Dateien auf diesem Weg herunterladen musste:
#!/bin/bash
echo "reget /vmfs/<mein Pfad>/$1 ." | sftp -o ServerAliveInterval=60 -P 6060 root@localhostDas Skript hatte ich als dlesx gespeichert. Da reget auch für den ersten Zugriff verwendet werden kann, konnte ich so bequem eine Reihe von Dateien vom ESX-Server herunterladen. Ich musste vor allem zwei sehr große Festplattendateien herunterladen. Bei einem Verbindungsabbruch konnte ich den Vorgang in der bash mit <Pfeil-hoch> <Enter> neustarten. Es gab noch einige weitere Dateien, aber ihre Zahl war relativ klein, so dass ich alles mit dem gleichen Skript schnell herunterladen konnte.