On Thu, 25 Oct 2001, Yann Sagon wrote:

> en nfs) et on ne peut pas utiliser syslog pour le rediriger sur un pipe... 

syslog marche par réseau de syslog à syslog, et cela doit donc être
possible de finalement passer par une pipe.

> est ce que je peux quand même m'en sortir comme ça?

Essayons:

Pour que cela:

   tail -f fichier | grep quelque_chose

fonctionne dans le cas général, il faut que ni tail ni grep ne fasse de
buffering.

   schaefer@defian:/tmp% touch abcd
   schaefer@defian:/tmp% tail -f abcd | grep turlututu

après avoir rapidement essayé (du moins en local), chez moi ça marche
(depuis un autre terminal j'ai fait: echo turlututu >> /tmp/abcd.
 Cela ferme le fichier, j'ai donc utiliser cat >> /tmp/abcd sans
 taper CTRL-D. Il y a un délai mais c'est normal, cf plus bas).

Comment ça marche ?

   schaefer@defian:~% ps auxw | grep tail
   schaefer  3255  0.0  0.2  1012  380 pts/6    S    15:02   0:00 tail -f abcd
   schaefer@defian:~% strace -p 3255
   fstat(3, {st_mode=S_IFREG|0644, st_size=1577983, ...}) = 0
   rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
   rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
   rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
   nanosleep({1, 0}, {1, 0})               = 0
   fstat(3, {st_mode=S_IFREG|0644, st_size=1577983, ...}) = 0
   rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
   rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
   rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
   nanosleep({1, 0}, {1, 0})               = 0

en bref, chaque seconde, tail regarde le mtime du fichier via fstat et si
oui il fait une lecture jusqu'à la fin. En 2.4 ont été implémentées des
interfaces de notification (ie: push plutôt que pull -- ou le contraire
:)) similaire à ce qui existait sur SGI IRIX. Enfin je crois, pas encore
essayé.

Donc, cela peut aider si tes machines (en NFS) ont le temps synchronisé.

NB: pour que syslog écrive effectivement immédiatement dans le fichier,
    il faut, comme décrit dans man 5 syslog.conf, que l'entrée
    correspondante n'ait pas de `-'. En plus, par réseau il y aura
    forcément caching.


--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.

Répondre à