Pipe tail et wall

Résolu
Ovopack -  
 Ovopack -
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. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
    0
  2. Ovopack
     
    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!
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    tail -f ne rend pas la main, donc wall attend
    0
  4. Ovopack
     
    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?
    0
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      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
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Ovopack
     
    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++!
    0
  7. Ovopack
     
    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
    0
  8. Ovopack
     
    Problème résolu, il y avait une commande qui ne fonctionnait pas dans mon rc.local et qui terminait le script!
    0