Pipe tail et wall

Résolu
Bonjour à tous!

Je n'arrive pas à faire un pipe correct d'un tail -f sur une commande wall pour l'afficher en broadcast :

tail -f /var/log/auth.log | grep --line-buffered -v disconnected | grep --line-buffered -v pam | grep --line-buffered -v su |  wall


La commande wall ne recoit apparement rien dans stdin...

Pour ceux qu'ils auront compris, c'est pour afficher en broadcast toutes les authentifications au server.

Quelqu'un aurait une idée?

Merci!

7 réponses

  1. Problème résolu, il y avait une commande qui ne fonctionnait pas dans mon rc.local et qui terminait le script!
    1. Curieux,

      la commande :

      nohup tail -f /var/log/auth.log | egrep --line-buffered -v "disconnected|pam|su|closed" | while read l; do echo $l | wall -n ;done > /dev/null &


      Fonctionne bien en ligne de commande, mais dans le rc.local, après redémarrage. rien :'(

      Je vais essayer de trouver
      1. Ca fonctionne!

        Juste une dernière modif :

        nohup tail -f /var/log/auth.log | egrep --line-buffered -v "disconnected|pam|su|closed" | while read l; do echo $l | wall -n ;done &


        Et voila, je mettrai dans /etc/rc.local .
        Je vais faire de meme pour /var/log/message pour broadcaster les logs d'iptables

        Merci beacoup! A++!
        1. pourtant les grep fonctionnent... mais eux n'attendent peut être pas le fin de tail.

          une idée pour contourné? une option de tail? un équivalent, une astuce?
          1. Contributeur
            essayer
            defaut, un message par ligne
            tail -f /var/log/auth.log | egrep --line-buffered -v "disconnected|pam|su" | while read l; do echo $l | wall ;done
        2. Hello,

          Oui j'ai déjà essayé ta commande pour vérifier si les pipes fonctionnaient bien :
          Je vois bien la sortie de tail comme ca mais ca ne fonctionne pas quand je rajoute le wall.

          echo "test" | wall 

          Me retourne bien le broadcast...

          J'ai essayé sans les --line-buffered mais c'est surement pire car sans cet arg, le premier grep met en mémoire tampon et les suivants ne recoivent rien.

          wall attends peut être la fin de la commande tail pour broadcaster....?
          Du coup j'ai tenté un pipe intermédaire (....) | xargs echo | wall
          Mais non!
          1. Contributeur
            hello
            ces commandes produisent bien un message ?
            tail -f /var/log/auth.log | grep --line-buffered -v disconnected | grep --line-buffered -v pam | grep --line-buffered -v su 

            essayer sans --line-buffered