Forum général.général Redirection standard... problème bizarre

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
23
déc.
2013

Bonjour,
Je suis en train de réaliser un script avec inotifywait…

J'aimerais etre avisé lorsque inotifywait est bien chargé ex:

inotifywait -m -r -e create,modify --fromfile /tmp/FILE_TO_CHECK --format %w%f|%e

Setting up watches. Beware: since -r was given, this may take a while!
**Watches established.

C'est la chaine "Watches established" que je veux récupérer…
Pour cela je veux rediriger le canal qui envoi ce message UNIQUEMENT… en effet dans mon script mon inotifywait redirige deja la sortie standard vers une boucle while pour declencher des actions lors de la création de fichiers (ca marche au top!) :D

Je ne comprend pas pourquoi inotifywait renvoit ce message en console mais celui-ci n est pas récupérable que ce soit par stdout ou stderr:

ex:
inotifywait -m -r -e create,modify --fromfile /usr/local/maldetect/tmp/FILE_TO_CHECK --format %w%f|%e

Watches established.

# cat /tmp/prout
#

inotifywait -m -r -e create,modify --fromfile /usr/local/maldetect/tmp/FILE_TO_CHECK --format %w%f|%e 2>/tmp/prout

Watches established.

# cat /tmp/prout
#

inotifywait -m -r -e create,modify --fromfile /usr/local/maldetect/tmp/FILE_TO_CHECK --format %w%f|%e 2>&1 >/tmp/prout

Watches established.

# cat /tmp/prout
#

Le code source de inotifywait :
https://github.com/rvoicilas/inotify-tools/blob/master/src/inotifywait.c

indique:
if ( !quiet ) {
output_error( syslog, "Watches established.\n" );

Hors je ne vois rien dans les logs syslogs… et je ne comprend pas pourquoi je ne peux pas récupérer cette $!**U chaine :)

Si vous avez des idées en passant…
Merci

  • # Les pipes, ça vient de Saint Claude

    Posté par  . Évalué à 2.

    Tu es sûr que tu as copié/collé le bon code ?
    Car le « | » vers la fin de ta ligne me semble étrange. Tu devrais avoir un message d'erreur expliquant que %e n'est pas une commande connue.

    • [^] # Re: Les pipes, ça vient de Saint Claude

      Posté par  . Évalué à 1.

      elo, oui j ai bien ce message je l ai pa copy/paste j ai d ailleurs pas copier tt la ligne qui fait 1km avec les exclude :)

      • [^] # Re: Les pipes, ça vient de Saint Claude

        Posté par  . Évalué à 4.

        alors voila pourquoi tu ne recuperes rien.

        le STDERR (2>) de inotify ne traverse par le pipe (|)
        si tu dois garder le pipe, il faut faire la redirection avant
        genre

        inotifywait xxx yyyy 2>/tmp/fichier-surveillance | %e....
        • [^] # Re: Les pipes, ça vient de Saint Claude

          Posté par  . Évalué à 3.

          Heu nan Neox tu t'emmêles, le « | » fait partie des paramètres :-)
          Ça me semble étrange comme syntaxe mais pourquoi pas.

          .

          Il faut mettre des guillemets simples ou doubles : --format '%w%f|%e'
          Avec ça ta redirection devrait fonctionner.

          .

          j ai bien ce message je l ai pa copy/paste

          Afficher les messages, c'est un peu la base pour se faire aider.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.