• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Grosse Ordner downloaden über sftp + tar +bzip2?

Artisan72

Newbie
Hallo! Wo ich eben was über sftp geschrieben hatte, fiel mir noch eine Frage dazu ein:

Bisher packe ich erst Ordner mittels

Code:
tar cvfj ordnername.tar.bz2 ordnername

Lade dann die Datei runter, und expacke sie dann mittels

Code:
tar xvfj ordnername.tar.bz2

Theoretisch müsste es doch möglich sein, dass alles zusammen ausgeführt wird, keine Datei erzeugt wird, sondern auf dem Server wird der Ordner gleich gepackt, die Daten gleich übertragen, und lokal wieder entpackt?

Das würde einiges an Wartezeit sparen, die Übertragung wäre schneller als wenn die Dateien umkompromiert übertragen werden würden, und die ersten Dateien wären auch gleich da.
 

TomcatMJ

Guru
Hm,da wäre wohl netcat dein Freund anstelle von sftp ;)
Siehe dazu auch unter http://wiki.linux-club.de/opensuse/Bandlaufwerke_und_LINUX#getestete_Beispiele_mit_mbuffer im untersten Bereich des Abschnitts als Mustervorlage für die Anwendung von netcat.
P.S.:Für eine verschlüsselte Übertragung wäre da wohl eher noch cryptcat ( http://cryptcat.sourceforge.net/info.php ) angesagt,allerdings bitte dann mit -k passphrase Parameter nutzen um einen eigenen statt dem hardcoded Schlüssel zu nutzen der ja bereits auf der Infoseite erwähnt ist ;)
P.P.S.: Es gibt wohl noch eine netcat-Implementation die auch direkt ssl unterstützt: http://nmap.org/book/ncat-man.html
 
OP
A

Artisan72

Newbie
Uih, danke, mit netcat geht's ja wirklich easy.
Hab nur nach "netcat tar bz2" gegooglet, und bin auf den Artikel gestossen:

http://www.screenage.de/blog/2007/12/30/using-netcat-and-tar-for-network-file-transfer/

Den Code da ein bisschen angepasst:

Auf dem Rechner mit dem zu übertragenden Ordner eingeben:
Code:
tar cjv ordnername | nc -q 10 -l -p 7878

Und auf dem Rechner, der den Ordner empfangen soll:
Code:
nc -w 10 hostname_oder_ip 7878 | tar xjfv -
(v kann weggelassen werden, ist aber zu empfehlen, wenn man sehen möchte, bei welchen Dateien man gerade ist, 7878 ist der Port, den kann man selbst bestimmen)

Cryptcat werde ich bei Gelegenheit testen, mit Verschlüsselung ist immer besser wie ohne ;) Theoretisch könnte nach Eingabe des 1. Befehles jemand anderes zuvor kommen und die Dateien empfangen.

Noch ein Hinweis: Falls es hier zu keiner Verbindung kommt, besonders wenn man vom lokalen Rechner einen Ordner übertragen möchte, sollte man die Einstellungen des Routers überprüfen. Der gewählte Port muss an die lokale IP des Rechners weiter geleitet sein.
 
Oben