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.