Wie lade ich eine Datei von der Kommandozeile herunter? über ssh?


21

Ich möchte Dateien von einem Remote-Server auf mein lokales Laufwerk herunterladen und dies über die Befehlszeile tun. Ich möchte dies auch über SSH tun können. Wie kann ich das machen?

Hinweis: Der Remote-Server ist Ubuntu, der lokale ist Mac OS X

Antworten:


29

Verwenden Sie scp-command, es läuft auf SSH. Beispiel:

scp username@remote.host:/path/to/file localfile

Es funktioniert auch anders herum

scp localfile username@host:/path/remotefile

Benutzername, Pfad und Dateiname können weggelassen werden (nicht jedoch das :!).

Wie Iain sagte, funktioniert SFTP auch, aber ich neige dazu, scpfür seine cpähnliche Verwendung zu bevorzugen .


Seltener bin ich mir sicher, und korrigiere mich, wenn ich falsch liege, aber ich denke, scp funktioniert auch von Fern zu Fern, wenn Sie wirklich brauchen: scp username@remote1:/path/to/file username@remote2:/path/to/file
JMD

Kannst du Verzeichnisse kopieren?
Andrew

herausgefunden ... -r kopiert auch rekursiv Verzeichnisse
Andrew

Ich empfehle, die -pOption beim Kopieren von Dateien oder Ordnern mit hinzuzufügen scp. Es kopiert auch die Dateiattribute (Zeitstempel und Flags). Ich finde, ich will -pöfter, als ich es nicht will!
Joeytwiddle

Sie können über das -3Flag auch von Remote zu Remote über den Localhost scp -3 jeff@firsthost.com:/files/file1.zip brad@secondhost.com:/archivesweiterleiten : Dies ist hilfreich, wenn Sie einen privaten Schlüssel für den Zugriff auf beide Server verwenden müssen, die nur auf Localhost vorhanden sind: scp -3i /local/path/to/.ssh/private_key dan@host1:/path/to/file.txt miri@host2:/path/to/upload/dir/Die Fortschrittsanzeige ist für -3 deaktiviert
Dan Sandland

3

Sie können auch dafür verwenden rsync. Es kann über SSH arbeiten.


rsync -avvPist mein Favorit für Dateien und / oder Ordner, aber es gibt einen Nachteil: Es muss auf dem Remote-Computer installiert werden.
Joeytwiddle

Wenn Sie Probleme beim Herstellen einer Verbindung haben, müssen Sie möglicherweise übergeben -e ssh, um rsync anzuweisen, eine Verbindung über ssh herzustellen.
Joeytwiddle

3

Ich benutze dafür SFTP. Die Befehlszeile verwendet dieselbe Sicherheit wie SSH.


1

Wenn Sie scpoder SFTP nicht verwenden können, können Sie tarüber SSH verwenden:

tar cf - . | ssh otherhost "cd /mydir; tar xvf -"

Dieser ist auch gut, wenn Sie spärliche Dateien haben, die sonst "explodieren".

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.