AA_freight_johnnyberg_sxc_1070590.jpg

© Johnnyberg, sxc.hu

Einfacher Transport

Mit Netrw Daten schnell durchs Netz schieben

17.04.2014
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
 
Kommentare

Infos zur Publikation

LU 08/2015: Cloud-Speicher

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

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

Tipp der Woche

Grammatikprüfung in LibreOffice nachrüsten
Grammatikprüfung in LibreOffice nachrüsten
Tim Schürmann, 24.04.2015 19:36, 0 Kommentare

LibreOffice kommt zwar mit einer deutschen Rechtschreibprüfung und einem guten Thesaurus, eine Grammatikprüfung fehlt jedoch. In ältere 32-Bit-Versionen ...

Aktuelle Fragen

Plugins bei OPERA - Linux Mint 17.1
Christoph-J. Walter, 23.07.2015 08:32, 1 Antworten
Beim Versuch Video-Sequenzen an zu schauen kommt die Meldung -Plug-ins und Shockwave abgestürzt-....
Wird Windows 10 update/upgrade mein Grub zerstören ?
daniel s, 22.07.2015 08:31, 5 Antworten
oder rührt Windows den Bootloader nicht an? das ist auch alles was Google mir nicht beantw...
Z FUER Y UND ANDERE EINGABEFEHLER AUF DER TASTATUR
heide marie voigt, 10.07.2015 13:53, 2 Antworten
BISHER konnte ich fehlerfrei schreiben ... nun ist einiges drucheinander geraten ... ich war bei...
PCLinuxOS lässt sich nicht installieren
Arth Lübkemann, 09.07.2015 18:53, 6 Antworten
Hallo Leute, ich versuche seit geraumer Zeit das aktuelle PCLinuxOS KDE per USB Stick zu insta...
Fernwartung oder wartung im haus
heide marie voigt, 29.06.2015 10:37, 2 Antworten
gerne hätte ich jemanden in Bremen nord, der mir weiter hilft - angebote bitte mit preis HMVoigt