14 Stimmen

SSH - eine Möglichkeit, Dateien zu übertragen, ohne eine separate SFTP-Sitzung zu öffnen?

Nicht wirklich eine Programmierfrage, aber für viele Programmierer relevant...

Nehmen wir an, ich habe eine SSH-Sitzung zu einem anderen Computer eröffnet.

remote:html avalys$ ls
willkommen.msg index.html readme.txt
remote:html avalys$

Gibt es einen Befehl, den ich in meiner Remote-Shell eingeben kann, um eine der Dateien im aktuellen Verzeichnis (z. B. welcome.msg) sofort auf meinen lokalen Computer zu übertragen, d. h.

remote:html avalys$ stransfer welcome.msg
Holen von /home/avalys/html/welcome.msg nach welcome.msg
/home/avalys/html/welcome.msg 100% 23KB 23.3KB/s 00:00
remote:html avalys$

Die einzige mir bekannte Möglichkeit, dies zu tun, besteht darin, eine parallele SFTP-Sitzung zu öffnen und in der SSH-Sitzung eine CD in mein aktuelles Verzeichnis einzulegen, was bei der Fernverwaltung eines Servers ein echtes Ärgernis ist.

EDIT: Ich bin mir der Möglichkeit bewusst, eine umgekehrte sftp/scp-Verbindung zu verwenden, aber das erfordert mehr Tipparbeit. Es wäre toll, wenn ich nur den Namen eines Befehls (z.B. "stransfer") und die zu übertragende(n) Datei(en) eingeben könnte, und es würde einfach funktionieren.

0 Stimmen

Ich verstehe, Sie suchen etwas wie den alten sz-Befehl aus der Fido-Zeit. Mann, das bringt mich zurück.

0 Stimmen

Wenn Sie sich die Eingabe des zweiten Arguments von scp ersparen wollen, fragen Sie einfach nach einem Alias.

1voto

Mark Punkte 16402

Sie könnten ein Bash-Skript namens stransfer schreiben, das ein Dateinamen-Argument annimmt und den Dateinamen in den scp-Befehl einfügt, vorausgesetzt, der Server und der Pfad zu den Dateien auf dem Server ändern sich nicht.

Wenn die Datei immer dieselbe ist, können Sie auch einen Alias in Ihrer ~/.bashrc-Datei erstellen.

alias getwelcome='scp avalys@remotehost:/home/avalys/html/welcome.msg .'

1voto

Ich hatte denselben Gedanken, den Paul Tomblin in einem Kommentar zu dieser Frage äußerte. In alten Terminalsitzungen wurden x-, y- und z-Modem-Protokolle und -Tools verwendet ( sz y rz für die Z-Modem-Varianten), um so etwas wie dies zu erreichen. Ich bin mir nicht sicher, ob dies über eine SSH-Sitzung funktioniert, aber es könnte einen Versuch wert sein.

Fink liefert ein lrzsz Paket mit diesem Werkzeug unter Mac OS X.

Ich mache das zu einem Gemeinschafts-Wiki, weil ich mich schlecht fühlen würde, wenn ich eine Antwort bekäme, nachdem Paul es zuerst geschafft hat...

0voto

Bill Punkte 413

Wenn ich in der Schule eine Datei von einem Linux-System auf ein anderes übertrage, verwende ich normalerweise ssh und dann scp, um die Datei vom entfernten System zurück auf meinen Computer zu übertragen. Ich bin mir nicht sicher, ob das das ist, wonach Sie suchen, oder ob das in Ihrem Fall überhaupt anwendbar ist, aber das ist normalerweise mein Weg, um zu vermeiden, dass ich ein weiteres Terminalfenster öffnen muss.

Nur um das klarzustellen, wenn Sie nicht mit scp vertraut sind, müssen Sie immer noch den Ort angeben, an dem Sie die Datei auf Ihrem Computer ablegen möchten, aber für mich ist das im Allgemeinen einfacher zu merken als der Ort der Datei auf dem entfernten Computer. Hier ist ein Link, der vielleicht hilfreich ist: http://www.computerhope.com/unix/scp.htm

0voto

Narfanator Punkte 5257

https://superuser.com/questions/259481/reverse-scp-over-ssh-connection

sftp server
get file.txt

Offensichtlich kann man auch in der sftp-Konsole navigieren, und get benötigt einen vollständigen Dateipfad. Kopiert in das Verzeichnis, von dem aus Sie sftp .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X