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.