On Thursday 25 October 2001 15:01, Yann Sagon wrote:
>
> Que veux tu dire.. il s'arrete pour toujours, ou il fait une pause.. ?
>
Dans les cas 1 & 2 il fait une pause (stoped). Dans le cas 3, y'a plus
d'process.
> > � part �a, si tu veux �tre capable de "raccrocher" au log, tout en
> > traitant
>
> D�sol�, mais je ne vois pas non plus ce que tu veux dire par "raccrocher"
> !!!
C'est � dire que tu d�marre ton machin longtemps apr�s que le log ait
commenc� � se remplir, que tu veux traiter ce qu'il contien d�j� mais qu'une
fois que tu es arriv� � la derni�re ligne du fichier, tu veux traiter ce qui
continue d'arriver de mani�re sporadique.
> Le sc�nario est le suivant: c'est un fichier qui n'est pas en local (il est
> en nfs) et on ne peut pas utiliser syslog pour le rediriger sur un pipe...
> est ce que je peux quand m�me m'en sortir comme �a?
Tu peux faire tourner ton grep sur la machine remote, te cr�er un socket...
ou encore (attention les v�los, �a va raper... c'est du ksh... plus simple
pour les op�ration arithm�tiques)
integer n
{
(( n=$(wc -l </var/log/truc_chose) ))
if (( n>10 ))
then
(( n=n-10 ))
sed -n "1,${n} p" /var/log/truc_chose
fi
tail -f /var/log/trux_chose
} 2>&1 | grep "blabla" >>text.tmp
�a, c'est pour lire le le fichier de log jusqu'� Last_Line - 10, balanc� ces
lignes sur stdout, puis reprendre le reste des lignes et ce qui arrivera par
par la suite (c'est ce que j'appelle "raccrocher") et le balancer aussi sur
stdout. L'ensemble du stdout (et stderr, quoique je n'en vois pas l'utilit�)
est ensuite trait� par ton grep...
Bon, y'a un "trou"... si jamais un nouveau message arrive entre le moment du
wc et le sed... risque de perdre une ou plusieurs lignes...
Aussi, consid�re que ce script n'est pas le r�sultat de deux jours de
r�flexion mais plut�t une id�e "comme �a" qui peut t'�clairer sur les
possibilit�s de ce genre de traitement � l'aide de ksh (c'est la partie
didactique). Pourquoi ksh ? Pour rire un coup... parceque �a marche partout
et que c'est relativement compr�hensible. �a peut aussi se faire en Perl
(certainement encore plus compact), awk, PHP, Latex, PostScript, ...
Daniel
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se d�sabonner aussi.