Log Datei auswerten, mit bash script oder Befehlsfolge
-
lv256 -
23. Dezember 2017 um 12:13 -
Erledigt
-
-
Log Datei auswerten, mit bash script oder Befehlsfolge? Schau mal ob du hier fündig wirst!
-
verstehe es nicht, sieht bei mir exakt genau so aus.
uname -r -v
4.9.35+ #1014 Fri Jun 30 14:34:49 BST 2017
-
verstehe es nicht, sieht bei mir exakt genau so aus.
Und wenn du spaßeshalber im Script mal komplette Pfade benutzt, also "/usr/bin/inotifywait" statt "inotifywait"?
-
Das Script von framp läuft jetzt und funktioniert...
Werde damit jetzt erstmal testen
-
Und wenn du spaßeshalber im Script mal komplette Pfade benutzt, also "/usr/bin/inotifywait" statt "inoinotifywait
Daran habe ich nicht gedacht
-
Daran habe ich nicht gedacht
Das macht doch nichts, ohne Dein Script wäre ich nie soweit gekommen.
Danke Dir nochmals
-
Spoiler anzeigen
#!/bin/bash
#
# Name: ldr_status.sh
# Sample code which listens for a file contents change
# and depending on the new contents triggers an action
#
if ! type inotifywait &>/dev/null ; then
echo "Missing inotifywait dependency. Install package inotify-tools (sudo apt-get install inotify-tools)"
exit 42
fi
LOGFILE="/tmp/ldr.log"
# setup change listener on file
coproc INOTIFY {
inotifywait -q -m -e close_write --format %e "$LOGFILE" &
trap "kill $!" 1 2 3 6 15
wait
}
# listen for event from coproc pipe and trigger action
while read event; do
value=$(<$LOGFILE)
case $value in
0) echo "Off received"
/home/pi/rcPlugsServer/rcswitch-pi/send 10100 1 0
;;
1) echo "On received"
/home/pi/rcPlugsServer/rcswitch-pi/send 10100 1 1
;;
*) echo "Unknown -$value- detected"
;;
esac
done <&${INOTIFY[0]}
Hallo,
habe nach einer Zwangspause durch eine Krankheit das folgende Script von framp nun getestet. Vielen Dank nochmals an framp.
Ich hoffe auf Eure Unterstützung, weil das Programm „inodify“ nicht so recht will.
Möchte mit dem Programm eine Log Datei ( /tmp/ldr.log ) auswerten. In dieser Datei steht nur ein Zeichen in einer Zeile, nämlich eine 0 oder eine 1.
Die Log Datei exestiert im Verzeichnis und wird, je nach dem, neu überschrieben.
inodify sollte nach einer eintretenden Änderung dieser Log Datei mit dem Script ( ldr_status.sh ) siehe Spoiler, reagieren.
Macht es aber nicht. Ich rufe inotiy auf mit:
pi@raspi_zero:/usr/local/bin/scripts/ldr$ inotifywait ldr_status.sh
Setting up watches.
Watches established.
Wenn sich die Log Datei durch einen anderen Wert ändert, reagiert das Script nicht.
Was mache ich falsch?
-
Und wenn du spaßeshalber im Script mal komplette Pfade benutzt, also "/usr/bin/inotifywait" statt "inotifywait"?
-
Ichrufe inotiy auf mit:
pi@raspi_zero:/usr/local/bin/scripts/ldr$ inotifywait ldr_status.sh
Setting up watches.
Watches established.
Wenn sich die Log Datei durch einen anderen Wert ändert, reagiert das Script nicht.
Was mache ich falsch?
Das Script ist vollständig. D.h. Du darfst es NICHT mit inotify aufrufen weil dann jegliche Änderungen von der Scriptdatei und nicht der Logdatei überwacht werden
-
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!