Oft kommt es vor, daß man "mal schnell" größere Datenmengen von einem PC im Netzwerk zu einem anderen schieben möchte. Gerade unter Linux gibt es hierfür sehr viele Möglichkeiten: NFS, Samba, SCP, FTP, usw.
Einige dieser Möglichkeiten haben aber Nachteile (zu langsam, zu umständlich zum einrichten, was auch immer...). Irgendwann bin ich auf das Progrämmchen "Netcat" gestoßen, einem Schweizer Taschenmesser für Netzwerkaktivitäten.
Um das Progrämmchen zum Datenkopieren zu benutzen, kombiniert man es z.B. mit tar. Dazu nimmt man dann einfach die folgenden Befehle her.
(Zu beachten ist hierbei allerdings, daß der Datenstrom unverschlüsselt übers Netz geht!)
cd zielverzeichnis && netcat -l -p 2000 | tar -x
zielverzeichnis ist ein beliebiges Verzeichnis, es muss aber schon vorhanden sein. 2000 ist die TCP-Portnummer für die Verbindung. Sie ist beliebig wählbar, muss nur auf dem Sender und dem Empfänger gleich sein.
cd quellverzeichnis && tar -c * | netcat 192.168.1.2 2000
Der Stern steht wie gewohnt für ALLE Dateien des Verzeichnisses. Hier darf aber auch eine einzelne Datei stehen.
192.168.1.2 2000 sind die IP-Adresse des Zielrechners und die Portnummer, die wir vorher schon auf dem "Sender" vergeben haben.
Um einen Überblick über die Übertragenen Datenmengen zu bekommen, lässt sich Netcat prima mit dem schon beschriebenen PV kombinieren, Beispiel:
Empfänger:
netcat -l -p 2000 | pv -p -t -e -r -b | tar -x
Sender:
tar -c * | pv -p -t -e -r -b | netcat 192.168.1.2 2000
Damit man sichergehen kann, daß die Daten auch wirklich alle heil angekommen sind, einfach auf beiden Seiten nochmal eine md5sum erstellen lassen...