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

Andrew
quelle

Antworten:

29

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

scp [email protected]:/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 .

Ahe
quelle
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 [email protected]:/files/file1.zip [email protected]:/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.

osgx
quelle
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.

Iain
quelle
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".

Jimmy Hedman
quelle