Beiträge von Magic_M

    Moinsen,

    gibt es eine Möglichkeit, den Fortschritt eines Axel Downloads in der Kommandozeile anzuzeigen?
    Ich dachte da an einen Einzeiler, der einen sich füllenden Ladebalken mit einem Zahlenwert daneben anzeigt.

    [////////// ] 50%

    Ungefähr sowas.
    Gibt es eine Möglichkeit, irgendetwas zu pipen, was den Fortschritt ausgibt? Um die weitere Verarbeitung der gepipten Daten würde ich mich auch selber kümmern. Mir fehlt einfach der Denkanstoss


    Zum Hintergrund:
    Gebaut habe ich ein Shellscript, welches Videos von der burning-series Streamingplattform runterlädt.
    Man hat nach Eingabe der gewünschten Serie die Möglichkeit einzelne Folgen, Staffeln oder die Serie komplett herunterzuladen.
    Ich muss dazu sagen, dass Bash absolutes Neuland für mich ist (abgesehen von dem rumgefentere an der Kommandozeile).
    Dem Script voraus ging ein Versuch das Ganze in PHP zu realisieren. Das Ganze war jedoch so verdammt unperformant, dass ich die Chance nutzen wollte um etwas in Shell Programmierung reinzuschnuppern

    Abgesehen von etwas Errorhandling und etwas Feinschliff rundherum läuft das Script soweit.
    Es werden Ordnerstrukturen angelegt, das Script curl't und grep't sich durch die Webseiten, um am Ende das Video in das entsprechende Verzeichnis zu laden.

    Bisher ist es so, dass die Kommandozeile vorher "Serie XYZ Staffel x von y, Folge x von y wird heruntergeladen" anzeigt und nach dem Download ein "Download abgeschlossen".
    Während des Runterladens, das weiß Gott nicht allzu lange dauert, wird aber nichts angezeigt.
    Ich würde das gerne ändern und eine Fortschrittsanzeige implementieren

    Ich bedanke mich schonmal für alle Hilfe und wünsche noch einen produktiven Freitag.


    TL;DR:
    Fortschritt von Axel in Bash-Script anzeigen. Ja? Nein?
    Wenn ja, Wie?

    Ich selbst habe es auch so gehandelt. Mein Raspi läuft als Multifunktionsserver mit Apache, MySQL, PHP und FTP. Standardkram halt.
    Ich habe mir da selbst ein Raspbian "zusammengeschustert". Mit dem reinen Minimum, keine GUI, etc. Standardmäßig belegt dieses System 200MB der SD-Karte, wobei davon noch etwa 100MB als freier Speicherplatz zur Verfügung stehen, wenn ich mich recht entsinne. Mit Erweiterung des Dateisystems auf die ganze SD-Karte und angehängter 2,5" Festplatte läuft das Ganze absolut wunderbar.

    Ich schaue heute nach der Arbeit einmal, ob ich irgendwo noch ein Image aus der "Anfangszeit" habe, sofern Interesse besteht.

    Wenn die Dateien in einem eigenen Ordner liegen, ohne dass in diesem noch etwas anderes ist, wäre es am einfachsten über eine Schleife zu lösen, welche das Verzeichnis durchgeht.

    Guckst du hier!
    Die erste Antwort von meigrafd wäre dann für dich interessant.
    Eine FOR-Schleife, welche das aktuelle Verzeichnis durchgeht und dir in jedem Durchlauf direkt einen vorhandenen Dateinamen als Variable zurückgibt.

    Ich denke, das ist der richtige Denkanstoß für deine Problematik.

    Mein Tipp wäre, erstmal generelles Troubleshooting zu betreiben.
    Was passiert, wenn du den MPlayer "händisch" über den Befehl startest? Friert er dann auch ein?
    Danach kannst du dich nach und nach vorantasten. Erst über Java einen Tastendruck einlesen und daraufhin den MPlayer starten. Alternativ anstatt den Player zu starten einfach eine println im Terminal ausgeben lassen.

    Gerade als Neuling hat man mit Allerlei zu kämpfen. Da ist es wichtig, das Problem in kleine Teilaspekte zu brechen um dadurch zu sehen WO es hakt.
    (MPlayer, Endlosschleife, etc.)

    An dem Code sind mehrere Sachen, die unter "Bad Practise" fallen.

    Zum einen fehlt hinter den beiden else's die öffnende geschweifte Klammer.
    Zum anderen baust du eine Endlosschleife, die in jedem Durchlauf "string S = scanner.next();" ausführt.
    Es ist möglich, dass der scanner irgendwann ins "Leere" läuft und eine Null-Pointer Exception schmeißt.

    Viel mehr kann ich aus dem Code-Snippet Ad-Hoc nicht ersehen.

    Mich würde mal interessieren, wie weit man den Raspi mit so einer Kühlungslösung "manuell" übertakten kann...
    Für alles andere wäre eine solche Kühlung meiner Meinung nach komplett 'Over the Top'.
    Wenn es jetzt natürlich möglich wär mit passender Wärmeleitpaste und diesem Lüfter, den Pi1 B+ auf 1,5 (Oder, mal ganz tollkühn formuliert, 2GHz) zu takten, eröffnen sich völlig neue Anwendungsgebiete. Von dem Pi2 B mal ganz zu schweigen! Besser als Leistung ist nur noch mehr Leistung!

    Benchmarks in dem Gebiet fänd ich extrem interessant!


    Feedback und Kritik erwünscht :^^:

    Gefällt mir persönlich super!
    Lange bevor es Raspi und Co. gab wollte ich auch mal einen Ausflug in die Linuxwelt wagen, so als Windowsjünger aus Mangel an Alternativen.

    Mir fehlten solche Auswahlhilfen, ich war damals einfach erschlagen von der Auswahl an Distributionen. Aufgrund dieser Flut und meiner Unwissenheit, was denn jetzt welche Distro besonders macht, habe ich meinen Einstieg in die Linuxwelt verschoben. Leider, wie ich heute sagen muss. Danke also, dass du dir die Mühe machst!


    Due kannst das nicht testen, indem Du den externen dyndns Namen aufrufst aus Deinem lokalen Netz.

    Verständnisfrage:
    Ist das so? Ich bin fast geneigt zu widersprechen. Wenn man aus dem LAN die DynDNS URL ansteuert verlässt man ja erst sein eigenes Netz, geht auf die Domain des jeweiligen DynDNS-Anbieters, der einen WAN-Seitig auf den eigenen Router verweist welcher dann portspezifisch auf den Raspi linkt.

    Das hat doch den selben Effekt, wie wenn ich es irgendwo anders mache oder verstehe ich da etwas falsch?