2016-03-17 1 views
3

J'ai un ODROID-c1 + que je voudrais utiliser comme serveur pi trous (dns essentiellement BlackHole pour son annonce)queue un fichier journal constamment mis à jour et effectuer une action lorsqu'une chaîne est trouvée

Je voudrais déclencher une led pour clignoter lorsqu'une chaîne est trouvée dans le fichier journal.

J'ai aussi wiringpi installé et fonctionne, l'exemple blink.sh fonctionne comme prévu comme suit:

PIN=0 

gpio mode $PIN out 

while true; do 
    gpio write $PIN 1 
    sleep 0.5 
    gpio write $PIN 0 
    sleep 0.5 
done 

Comment peut-on aller sur l'ajout du déclencheur tailf à cet échantillon?

Répondre

2

Untested, mais je crois que vous pouvez nourrir la sortie de tail dans votre boucle while:

#!/bin/bash 
pin=0 
gpio mode $pin out 
tail -f logfile | while read entry 
do 
    if [ "$entry" = "string" ]; then 
     gpio write $pin 1 
     sleep 0.5 
     gpio write $pin 0 
     sleep 0.5 
    fi 
done 

noms de variables sont traditionnellement réservés Majuscules pour l'utilisation du shell.

1

Merci pour le bon démarrage miken32!

Je suis en mesure de prendre votre échantillon et apportez des modifications à travailler pour mon application avec les éléments suivants:

#!/bin/bash 
pin=0 
gpio mode $pin out 
gpio write $pin 0 
tailf /var/log/pihole.log | while read INPUT 
do 
    if [[ "$INPUT" == *"/etc/pihole/gravity.list"* ]]; then 
     gpio write $pin 1 
     sleep 1 
     gpio write $pin 0 
    fi 
done 

Merci encore pour votre aide!

+0

Content de pouvoir aider. La façon dont le site fonctionne est que vous a) votez pour toutes les réponses que vous pensiez être utiles, et b) marquez celui qui a résolu votre problème comme «accepté» en cliquant sur la coche verte. À moins que vous n'ayez trouvé une solution totalement différente de celles fournies, vous n'avez pas besoin de poster une réponse à votre propre question. – miken32