Posts Tagged ‘watch’

Freitag, 6. November 2020

Trump oder Biden? Gezählte Stimmen im Live-Stream (für Geeks)

Genial: alex/nyt-2020-election-scraper

Web GUI (inkl. Notifications)

alex.github.io/nyt-2020-election-scraper/battleground-state-changes.html

Kommandozeile

Jemand auf der Arbeit hat sich ein Kommandozeilentool gebaut, welches ihm die Veränderungen in Arizona auflistet. Ich gehe davon aus, dass er diese Text-Datei alle paar Minuten abruft, parst, und dann das neueste Resultat ausgibt: battleground-state-changes.txt

Ich habe es auch versucht, und glaub‘ ich hingekriegt:

$ watch -n 60 ./potus-2020-vote-stream.sh

watch ruft das untenstehende Script alle 60 Sekunden auf.

potus-2020-vote-stream.sh enthält folgenden Code:

#!/bin/bash

URL="https://raw.githubusercontent.com/alex/nyt-2020-election-scraper/master/battleground-state-changes.txt"
STATE="Arizona"

CMD="curl --silent \"$URL\" | grep -A 2 \"$STATE\" | tail -n 1"
#echo $CMD
eval $CMD

exit 0

Tags: , , , , , , , , ,
Labels: USA

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 31. August 2014

Unter Linux einen Kommandozeilenbefehl regelmässig in Sekundenabständen ausführen (ohne cron)

Kürzlich spielte ich wieder einmal eine Sicherung des Inhaltes der 2 GB SD-Card, welche in meinem uralten TomTom ONE Europe steckt, zurück auf das Gerät. Da das Navigationsgerät nur über einen USB1-Anschluss verfügt, handelt es sich um eine entsprechend langwierige Angelegenheit.

Da ich die Sicherung auf der Kommandozeile unter Verwendung von rsync und ohne irgendwelche aussergewöhnlichen Kommandozeilenoptionen durchführte (-av reicht mir in solchen Fällen), musste ich mir einen anderen Weg überlegen, um den Fortschritt zu visualisieren.

Ich öffnete mir dazu ein zweites Kommandozeilenfenster. Damit ich den Computer kurzzeitig verlassen und mich bei der Rückkehr jeweils vom Fortschritt überzeugen konnte, startete ich folgenden Befehl:

$ watch -n 1 "df -k | grep INTERNAL | awk '{print \$4} {print \$5}'"

Mit Hilfe des Unix-Tools watch kann ein Befehl alle definierten n Sekunden wieder ausgeführt werden (hier: n -1, sprich jede Sekunde). Den Befehl fügte ich in Anführungszeichen bei, weil dieser Sonderzeichen und Pipes enthielt.

Konkret wird das Tool df aufgerufen, welches Grösseninformationen über gemountete Volumes ausgibt. Mittels grep filtere ich den Datenträger heraus, welcher mich interessiert. Und mittels awk isoliere ich dann die Grössenangaben über den noch verfügbaren Speicher (-k, das heisst in Kilobytes). Diese Zahl sollte im beschriebenen Anwendungsfall stetig nach unten zählen, bis der Kopiervorgang zu Ende ist.

WICHTIG: Damit awk in einem solchen Konstrukt funktioniert, müssen die Dollarzeichen escaped werden.

Tags: , , ,
Labels: Linux

1 Kommentar | neuen Kommentar verfassen