Dies ist die archivierte Version des Blogs vom 05.01.2017. Aktuelle Beiträge findest du unter thomas-leister.de
 

Wer kennt die Situation nicht: Man will nur mal eben eine Datei auf einen anderen Rechner schicken; sei es der PC eines Freundes, der gerade zu Besuch ist, oder auf einen Zweitrechner. An Möglichkeiten, die Datei zu übertragen, fehlt es nicht, nur kann es eben nie schnell genug gehen. Extra einen USB Stick suchen? Ne, keine Ahnung wo noch einer herumliegt! Irgendwelche Freigaben einrichten, die dann doch nicht funktionieren? Spezielle Programme? Apache Webserver? FTP Server? Alles viel zu aufwändig. Es muss einfach und vor allem schnell funktionieren und der Empfänger soll nicht an eine bestimmte Plattform gebunden sein.

Hier habe ich ein zwei verschiedene Einzeiller für die Linux Kommendozeile für euch, die einen schnellen, effektiven Dateiaustausch via HTTP ermöglichen. Der Empfänger muss nur noch die IP Adresse des anbietenden Rechners in die Adresszeile seines Webbrowsers eingeben; gefolgt von dem Port, auf dem das Script arbeitet.

Möglichkeit 1: Über nc und cat

while true; do { echo -e 'HTTP/1.1 200 OK\r\n'; cat Dateiname; } | nc -l 8080; done

Quelle: Webserver als Shell-Einzeiler

„Dateiname“ muss selbstverständlich mit dem Pfad der Datei bzw dem Dateinamen ersetzt werden, unter dem die freizugebende Datei gefunden werden kann ;) Zugriff via „http://Rechner-IP:8080“

Möglichkeit 2: Über Pythons „SimpleHTTPServer“

python -m SimpleHTTPServer

Quelle: User „Cocker68“ | Geraspora

Dieser Befehl gibt den kompletten Ordner, in dem es aufgeführt wird, frei. Eignet sich also, wenn es mal mehrere Dateien sind, die übertragen werden sollen. Der Zugriff erfolgt standardmäßig über „http://Rechner-IP:8000“.
Wenn der Port schon belegt ist, kann man – wie bei der ersten Befehlskette auch – auf einen anderen Port ausweichen. Bei diesem Einzeiler genügt es, den Port einfach hinten anzuhängen:

python -m SimpleHTTPServer 8080

… und schon wird Port 8080 zur Übertragung genutzt.

Kennt ihr noch andere schnelle Methoden, um eine Datei auf einen anderen Rechner zu übertragen? Lasst es mich wissen! ;)


Post published on 16. August 2013 | Last updated on 3. Juli 2016
Tags:             

Diesen Blog unterstützen

Wenn Dir der Beitrag gefallen hat, freue ich mich über einen kleinen Obolus :-) Bitcoin QR Code

PayPal-Seite: https://www.paypal.me/ThomasLeister
Meine Bitcoin-Adresse: 15z8 QkNi dHsx q9WW d8nx W9XU hsdf Qe5B 4s

Siehe auch: Unterstützung

Informationen zum Autor

Thomas Leister

Geb. 1995, Kurzhaar-Metaller, Geek und Blogger. Nutzt seit Anfang 2013 ausschließlich Linux auf Desktop und Servern. Student der Automobilinformatik an der Hochschule für angewandte Wissenschaften in Landshut.

4 thoughts on “Einzeiler: Dateien mal eben über’s Netzwerk schubsen

  • http://www.home.unix-ag.org/simon/woof.html

    Ein kleines Python-Tool, was genau dieses Problem lösbar macht.

  • Ich schätze Python sehr, aber es ist viel zu lahm, was solche Sachen angeht. Ich installiere für sowas immer „webfs“ (gibt’s eigentlich für jede Distro paketiert).

  • Hi

    Alle drei verlinkten Möglichkeiten finde ich sehr spannend, der http-Einzeiler nennt sich bei mir ‚gibordnerfrei‘, oder der ganze ‚Befehl‘:
    $ alias gibordnerfrei=’python -m SimpleHTTPServer‘
    ( eingetragen in der .bash_aliases )

    trotz ohne Fasebock *gefällt mir*
    hatte letztens das Problem, eine 6GB-Datei per LAN auf einen Netbook zu bekommen.
    Eigentlich nutze ich für so was PidGin mit dem Protokoll Bonjour, allerdings ist dort die Filegröße auf 2004MB (angetestet, laut Wiki bei ubuntuusers 2GB) beschränkt und es kommt drüber Müll an (mit max 2GB Größe).
    Hiermit wäre das Alles wohl schneller gelaufen.

    • Nachtrag

      Liest sich jetzt so, daß PidGin hier der Übeltäter war, Dem ist aber nicht so!
      Ich benutze seit langer Zeit, wie oben geschrieben, PidGin mit Bonjour, womit man einen 1-A LAN-Chat m it ‚Datei-schiebe-Funktion‘ bekommt.
      Die Begrenzung auf ca. 2GB war mir zuvor noch nie aufgefallen und die Begrenzung fand ich erst nach Stunden der Recherche, eben, daß es am Protokoll liegt, Welches eben nur 2GB zulässt.
      Das Bonjour-Protokoll hat den großen Vorteil. daß ALLE Bonjour-Rechner im LAN (auch VMs) in der Buddy-Liste angezeigt werden und mit Jedem davon geschrieben werden kann.
      Nutze ich viel zum Verschieben von CAD-Zeichnungen in die VM und die generierten Fräsbahnen zum Fräs-Rechner (emc³).
      Unter Windows klappt Das auch, sind aber 2 DLLs und noch eine kleine Installation nötig (müsste nachschauen, aber unter Win ist man es ja gewohnt, Treiber im INet von diversen Seiten zu saugen, kommt auf die drei Files nun auch nicht drauf an).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.