Per sftp Daten zwischen Servern übertragen

Ich habe zwei verschiedene Server unter Ubuntu am Start, und manchmal ist es praktisch, Dateien von einem Server schnell auf den anderen zu übertragen. Dazu benutze ich sftp. Ich habe mich auf einem meiner Server per ssh eingewählt. Anschließend verwandele ich mich in einen sudo-User:

 

sudo su

 

Wenn ich nun eine Datei von einem anderen Server herunterladen oder auf ihn hochladen will, verbinde ich mich mit dem anderen Server:

 

sftp user@entfernter-server.de

 

Nach der Passworteingabe erkennt man am vorangestellten

 

sftp>

 

dass die Verbindung erfolgreich war. Auch die Strato-Hidrive lässt sich per sftp ansprechen:

 

sftp HIDRIVE-USERNAME@sftp.hidrive.strato.com

 

Mit

 

help

 

oder

 

?

 

lassen sich die zur Verfügung stehenden Befehle anzeigen. „Remote“ bezieht sich immer auf den „entfernten“ Server, also den, auf den ich mich gerade mit sftp eingewählt habe. „Local“ ist der Server, auf dem ich mich „eigentlich“ befinde. Zuerst will ich herausfinden, in welchem Verzeichnis ich mich gerade auf dem Remote-Server befinde. Wie in einer normalen Shell-Sitzung gebe ich Folgendes ein, um mir das aktuelle Verzeichnis anzeigen zu lassen:

 

pwd

 

Wir können den Inhalt des aktuellen Verzeichnisses des Remote-Servers mit einem anderen bekannten Befehl anzeigen lassen:

 

ls

 

Die Befehle innerhalb der SFTP-Schnittstelle sind nicht die normalen Shell-Befehle und nicht so funktionsreich. Aber mit

 

ls -la

 

können wir uns den Verzeichnisinhalt des Remote-Servers differenzierter anzeigen lassen. Für die Anzeige des lokalen Servers setzen wir ein „l“ vor die Befehle:

 

lls

 

Oder auch

 

lls -la
lpwd

 

Um in ein anderes Verzeichnis zu gelangen, führen wir diesen Befehl aus:

 

cd Verzeichnisname

 

Remote-Dateien auf das lokale System übertragen

Wenn wir Dateien von unserem Remote-Host herunterladen möchten, geht dies mit

 

get remote.datei

 

Der Befehl "get" lädt eine Datei, die sich auf dem Remote-System befindet, auf das lokale System herunter. Wir können die Remote-Datei während des Herunterladens umbenennen:

 

get remote.datei lokale.datei

 

Ein Verzeichnis mit all seinen Inhalten lädt man herunter mit:

 

get -r einVerzeichnis/

 

Um Berechtigungen und Zugriffszeiten beizubehalten fügen wir noch "-P" oder "-p" hinzu:

 

get -Pr einVerzeichnis/

 

Lokale Dateien auf das Remote-System übertragen

Das Übertragen von lokalen Dateien auf das Remote-System ist ebenso einfach. Der entsprechende Befehl lautet „put“:

 

put lokale.datei

 

Die Flags -r und -Pr gelten auch für "put". Um ein gesamtes lokales Verzeichnis zu kopieren, können wir also ausgeben:

 

put -r einVerzeichnis/

 

Der Befehl "df" funktioniert hier auch. Damit können wir überprüfen, ob wir genügend Speicherplatz haben, um den Transfers durchzuführen:

 

df -h

 

Leider gibt es keine lokale Variante dieses Befehls, aber wir können das umgehen, indem wir den Befehl „!“ verwenden. Der Befehl "!" führt uns auf die lokale Shell, wo wir jeden auf unserem lokalen System verfügbaren Befehl ausführen können. So können wir die Festplattennutzung durch Eingabe überprüfen:

 

!
df -h

 

Um zu unserer sftp-Sitzung zurückzukehren, geben wir ein:

 

exit

 

Nun sollten wir wieder die sftp-Eingabeaufforderung sehen. Hier eine Übersicht über die wichtigsten sftp-Befehle:  

sftp

Beschreibung

help|?alle Kommandos anzeigen
 genauere Erklärung zum Kommando
cd Pfadin remote Verzeichnis wechseln
lcd Pfadin lokales Verzeichnis wechseln
pwdaktuellen remote Verzeichnispfad ausgeben
lpwdaktuellen lokalen Verzeichnispfad ausgeben
ls -l (entspricht ls -la)remote Verzeichnisinhalt ausführlich ausgeben
llslokalen Verzeichnisinhalt ausgeben
mkdir Verzeichnisremote Verzeichnis erstellen
lmkdir Verzeichnislokales Verzeicnis erstellen
rm Dateiremote Datei löschen
rmdir Verzeichnisremote Verzeichnis löschen
rename alter-Dateiname neuer-Dateinameremote Datei verschieben|umbenennen
put lokaler-Dateiname [remote-Dateiname]Datei hochladen
 unterbrochenen Dateiupload fortsetzen
get remote-Dateiname [lokaler-Dateiname]"Datei" runterladen
 unterbrochenen Dateidownload fortsetzen
!KommandoKommando in lokaler Shell ausführen
!in lokale Shell wechseln / lokale Shell verlassen
exit|bye|quitSFTP Session beenden

Hinweis: 'Datei Namen' mit Leerzeichen müssen mit ' ' eingeschlossen werden.

Kommentare und Antworten

×

Name ist erforderlich!

Geben Sie einen gültigen Namen ein

Gültige E-Mail ist erforderlich!

Gib eine gültige E-Mail Adresse ein

Kommentar ist erforderlich!

Captcha Code Kann das Bild nicht gelesen werden? Klicken Sie hier, um zu aktualisieren

Captcha ist erforderlich!

Code stimmt nicht überein!

* Diese Felder sind erforderlich.

Sei der Erste, der kommentiert!