Marcel Eichner // Ephigenia

  • Home
  • Illustration
  • Code
  • Kontakt

Aktuelle Projekte

Horrorblog.org
jQuery.slideShow
Franklin
code.marceleichner.de

This Blog-Website is built with Harrison!

Blogs & Freunde

Gimmixx
Martin Fleck
Torsten Bergler
Jens Franke
Robokid
Peter Kröner
Polycoder
Coding Horror
Lotterliebe
CodeBalancer
Pseudocoder
Migrador
Dachdeckermeister Peter Arold in Werda, Plauen, Hof und Umgebung La Petite Provence - Pension und Festsaal in Leisnig Piv-Berlin, Immobilienverwaltung Verwaltung Berlin blogoscoop

#466

02.07.2009 16:19
2 Kommentare
Share
  • code
  • script
  • bash
  • shell
  • file
  • changed
  • bell
  • log
Aus aktuellem Anlass wollte ich ein Shell-Script schreiben das mir anzeigt, wenn sich eine Datei ändert (ein Log-File) und diese dann kurz ausgibt. Jedes mal wenn sich also die Datei ändert, klingelt es im Terminal (printf 'a') und ich bekomme die letzten Einträge angezeigt:
interval=${2:-1}
filename=$1
filename=${filename:?"missing."}
while true
do
  if test `find "$filename" -mmin ${interval}`
  then
    clear;
    printf "`date`n$filenameann";
    tail "$filename"
  fi
  echo "sleeping for next check in $((interval * 60)) seconds ..."
  sleep $((interval * 60))
done

Man kann das auch auf die Spitze treiben, aber so macht’s erstmal das was ich wollte. Benutzt wird es dann wie folgt:
./fileChanged.sh folder/testlog.log
Checkt dann jede Minute ob die Datei sich geändert hat. Wer rausbekommt wie man das mit Sekunden machen kann sagt mir Bescheid :)

Kommentare

18.07.2009 20:00
Moritz
Theoretisch müsstest du Zeile 1, Zeile 6, Zeile 12 und Zeile 13 ändern. Bloß wirst du an Zeile 6 scheitern, weil find mit dem Switch -mmin eben nur Minuten erfassen kann und keine Sekunden. Bliebe noch find durch ls oder (falls verfügbar) stat zu ersetzen. Da bekommst du die Änderungszeiten (ctime) genauer.
18.07.2009 20:46
Marcel Eichner
Vielen Dank für den Kommentar!
Zeilennummern sind jetzt an :)

Kommentar hinterlassen

Deine E-Mail Adresse wird nicht veröffentlicht. Wenn Du bei gravatar ein Bild für deine E-Mail Adresse hinterlegt hast, wird dieses neben Deinem Namen angezeigt.

marceleichner HTML5 Harrison Theme (Validate Source), © 2010 by Ephigenia M. Eichner, Impressum