AA_freight_johnnyberg_sxc_1070590.jpg

© Johnnyberg, sxc.hu

Mit Netrw Daten schnell durchs Netz schieben

Einfacher Transport

Selbst ohne die aufwendige Infrastruktur schieben Sie Daten schnell und einfach übers Netzwerk. Dabei helfen die Werkzeuge aus dem Netrw-Paket.

Sie möchten schnell und unkompliziert Daten zwischen zwei Rechnern transportieren, es fehlt aber mangels Software der Zugriff auf etablierte Techniken wie SFTP oder SCP? Oder Sie verfügen auf der Zielmaschine über kein Benutzerkonto? Dann helfen die Programme aus dem Paket netrw [1] weiter.

Hat auf dem Zielsystem jemand das Programm Netread gestartet, steht dem Übertragen der Daten nichts mehr im Weg. Damit lauscht der Rechner am angegebenen Port auf die gesendeten Daten. Ein Ausnahme bildet der Firewall-Modus – dazu später mehr.

Der Vorteil der Ad-hoc-Lösung gegenüber einer, bei der ein Daemon ständig lauscht, liegt in der normalerweise nur kurzen Existenz des offenen Kanals. Das reduziert die Wahrscheinlichkeit, dass ein Angreifer zufällig über den offenen Port stolpert. Oft sitzt zusätzlich eine Person vor dem Bildschirm jedes beteiligten Rechners und verfolgt den Ablauf der Transfers.

Zum Senden benutzen Sie das Kommando Netwrite. Für sich gesehen besteht damit die Möglichkeit, alle möglichen Daten in die weite Welt zu übertragen. Wenn der Rechner nicht in einem geschützten Netz steht, empfiehlt es sich also, entsprechende Vorkehrungen zu treffen. Um die Daten als solches vor dem Mitlesen zu schützen, verschlüsseln Sie die Nutzlast am besten.

Grundfunktionen

Im einfachsten Fall beginnen Sie, indem Sie den Empfang von Daten mit Netread initialisieren. Dabei geben Sie lediglich die Portnummer an und leiten die Standardausgabe in eine Datei um (Listing 1, Zeile 1). Die Übertragung selbst starten Sie nach dem gleichen Muster (Listing 1, Zeile 2).

Listing 1

$ netread Port > Ausgabedatei
$ netwrite IP-Adresse Port < Datei

Abbildung 1 zeigt den Ablauf des Transfers. Die beiden Programme weisen gemeinsame Optionen auf, deren wichtigste Sie in der Tabelle "Optionen" finden.

Abbildung 1: Mit nur wenigen Parametern übertragen Sie Daten mithilfe der Tools Netread und Netwrite.

Optionen

Parameter Erläuterung
udp UDP statt TCP verwenden
-f Host lesende Seite beginnt mit dem Aufbau der Verbindung
-C Algorithmus verwende angegebenen Algorithmus (sha1, md5, rmd160, none)
-o Datei Angabe der Datei
-h Wert Fortschritt alle Wert KByte ausgeben
-H Wert Fortschritt alle Wert MByte ausgeben
-b Geschwindigkeit in Bits/Sekunde (anstelle Byte/Sekunde) angeben
-q Ausgaben am Bildschirm unterdrücken
-v ausführliche Meldungen ausgeben
-vv sehr ausführliche Meldungen ausgeben

Die Nutzlast beziehen Sie entweder direkt aus einer Datei oder verwenden die Option -i Datei bei Netwrite. Am Zielsystem verwenden Sie umgekehrt die Ausgabeumlenkung (>) oder die Option -o Datei zum Speichern der Daten.

Fortschritt

Die Anzeige des Fortschritts beim Übertragen der Daten erweist sich vor allem beim Senden größerer Datenmengen als hilfreich, um festzustellen, ob die Bytes tatsächlich noch durch das Netzwerk fließen. Sie dürfen zwischen einer Anzeige in KByte (-h) oder MByte (-H) wählen. Die Option verlangt die Angabe, für welche Datenmenge eine ausgegebene Raute steht. Das führt mitunter dazu, dass die Anzeige entweder seitenfüllend oder zu kurz ausfällt (Abbildung 2).

Abbildung 2: Da die Forschrittsanzeige flexibel auf einen Parameter reagiert, gilt es hier, einen für die Datenmenge sinnvollen Wert zu wählen.

In einem Shell-Skript (Listing 2) ließe sich mit Stat [2] feststellen, wie groß die Datei ausfällt, und anschließend ein brauchbarer ganzzahliger Wert für den Fortschrittsbalken übergeben. Beachten Sie, dass eine Zeile 50 Rauten fasst. Daher kommt bei sehr kleinen Datenmengen eventuell keine Anzeige zustande.

Listing 2

#! /bin/sh
if [ -z $1 ]; then
  echo "Dateiname fehlt - ABBRUCH!"
  exit
elif [ -z $2 ]; then
  echo "Zielrechner/Zielport fehlt - ABBRUCH!"
  exit
elif [ -z $3 ]; then
  echo "Zielrechner/Zielport fehlt - ABBRUCH!"
  exit
fi
menge=$(stat -c %s $1)
rauten=$(echo $menge/1014/50 | bc)
netwrite -h $rauten $2 $3 < $1

Die empfangende Seite kennt die Dateigröße im Voraus nicht. Entweder erfragen Sie den Wert vor dem Start des Transfers oder Sie verwenden den Wert 1000, der erfahrungsgemäß bei -h vernünftige Ausgaben produziert.

Abbildung 3 zeigt den Ablauf des Skripts. Der Übersichtlichkeit halber kommen Positionsparameter anstelle von Eingabemasken zum Einsatz. Mit den Möglichkeiten von Zenity [3] oder Cdialog [4] ließe sich dieses Skript entsprechend erweitern.

Abbildung 3: Ablauf des Skripts mit optimierter Anzeige des Fortschritts.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 10/2016: Kryptographie

Digitale Ausgabe: Preis € 0,00
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Soundkarte wird erkannt, aber kein Ton
H A, 25.09.2016 01:37, 6 Antworten
Hallo, Ich weiß, dass es zu diesem Thema sehr oft Fragen gestellt wurden. Aber da ich ein Linu...
Scannen nur schwarz-weiß möglich
Werner Hahn, 20.09.2016 13:21, 2 Antworten
Canon Pixma MG5450S, Dell Latitude E6510, Betriebssyteme Ubuntu 16.04 und Windows 7. Der Canon-D...
Meteorit NB-7 startet nicht
Thomas Helbig, 13.09.2016 02:03, 3 Antworten
Verehrte Community Ich habe vor Kurzem einen Netbook-Oldie geschenkt bekommen. Beim Start ersch...
windows bootloader bei instalation gelöscht
markus Schneider, 12.09.2016 23:03, 1 Antworten
Hallo alle zusammen, ich habe neben meinem Windows 10 ein SL 7.2 Linux installiert und musste...
Ubuntu 16 LTE installiert, neustart friert ein
Matthias Nagel, 10.09.2016 01:16, 3 Antworten
hallo und guten Abend, hab mich heute mal darangewagt, Ubuntu 16 LTE parallel zu installieren....