Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Surveiller un fichier log

29 réponses
Avatar
Serge Nazarian
Bonjour,

Je désire entreprendre une action dès qu'une certaine ligne est écrite dans
un fichier de log.
Quelqu'un aurait-il une idée sur la manière de procéder.

Merci pour toute aide.
Cordialement,
--
Serge Nazarian

Cliquez ci dessous pour une réponse personnelle :
http://cerbermail.com/?CBBJUUv0pN

9 réponses

1 2 3
Avatar
Zeyes
Zeyes wrote in message <46224768$0$25922$:
Ben on passe bien, a un moment ou un autre par un point commun lors
d'une ecriture dans un truc (pipe, fichier...), non?


Oui, mais ce n'est pas fwrite. Ton problème, c'est que tu essaies d'employer
des notions qui sont au delà de ton niveau. Forcément, tu te plantes.
Restes-en à ce que tu sais, n'emploie pas du vocabulaire dont tu ne connais
le sens qu'approximativement, n'essaie pas de programmer fcntl avant de
savoir faire un hello world, et tout ira mieux.


fwrite etait un symbolisme!

Mon pb n'est pas la prog, mais mon environnement Linux
Des options gcc, peut-etre
J'ai lance un topic (et je suis alle trop vite... une conclusion hative)
"fichiers inclus par defaut"

Si tu pouvais m'aider la-dessus s'il te plait....
Meme si ca ne donne rien a la fin, je me serais qd meme amuse, et j'en
apprendrai plus sur la prog Linux

Par exmple, que les signaux ne sont pas adaptes et inotify est fait pour
ca...

(PS: j'ai deja ecrit des drivers W2k... mais bon, je prefere Linux :-) )


Ben il me semblait qu'avant de voir si une ligne speciale est arrivee
dans le log, il faut qu'il ait ete modifie, et donc, qu'on soit prevenu.


C'est à ça que servent les pipes, justement.



Avatar
Luc.Habert.00__arjf
Zeyes :

Par exmple, que les signaux ne sont pas adaptes et inotify est fait pour
ca...


Il n'y a pas d'api standard sous unix pour être prévenu de la modification
d'un fichier. Le truc que tu a l'air de vouloir utiliser, c'est dnotify, qui
a été introduit il y a quelques années sous linux, et qui m'a l'air
totalement abracadabrant à utiliser. D'ailleurs, ils ont sorti inotify
depuis, qui m'a l'air nettement plus utilisable (man inotify) (je n'ai
utilisé aucun des deux, je n'ai fait que lire rapidement les pages de man).

Oui, tu peux utiliser inotify sur le fichier, et avancer ta tête de lecture
à chaque fois qu'on te notifie que le fichier a été modifié. Mais c'est
tellement plus simple de lire sur un pipe...

Avatar
Zeyes
Zeyes :

Par exmple, que les signaux ne sont pas adaptes et inotify est fait pour
ca...


Il n'y a pas d'api standard sous unix pour être prévenu de la modification
d'un fichier. Le truc que tu a l'air de vouloir utiliser, c'est dnotify, qui
a été introduit il y a quelques années sous linux, et qui m'a l'air
totalement abracadabrant à utiliser. D'ailleurs, ils ont sorti inotify
depuis, qui m'a l'air nettement plus utilisable (man inotify) (je n'ai
utilisé aucun des deux, je n'ai fait que lire rapidement les pages de man).

Oui, tu peux utiliser inotify sur le fichier, et avancer ta tête de lecture
à chaque fois qu'on te notifie que le fichier a été modifié. Mais c'est
tellement plus simple de lire sur un pipe...
Bon, ca marche... mais...

:-)
fcntl ne permet de surveiller que le contenu de repertoires.
J'ai bien mon signal quand un fichier est modifie, mais je ne sais pas
comment trouver lequel...
Bon je vais voir inotify...


Avatar
Luc.Habert.00__arjf
Zeyes :

fcntl ne permet de surveiller que le contenu de repertoires.
J'ai bien mon signal quand un fichier est modifie, mais je ne sais pas
comment trouver lequel...


Bein oui, quand je dis que ce truc est inutilisable...

Avatar
Zeyes
Zeyes :


Oui, tu peux utiliser inotify sur le fichier, et avancer ta tête de lecture
à chaque fois qu'on te notifie que le fichier a été modifié. Mais c'est
tellement plus simple de lire sur un pipe...


Ok mais finalement, tu fais comment si le fichier log est genere par un
truc dont t'as pas les sources (pas de www, par exemple)?
Je n'ai trouve que tail -f, mais personne n'a dit si c'etait bien ou
pas... ni pourquoi!

(J'aime bien comprendre)

Avatar
Luc.Habert.00__arjf
Zeyes :

Ok mais finalement, tu fais comment si le fichier log est genere par un
truc dont t'as pas les sources (pas de www, par exemple)?


Je te l'ai dit : tu mets un pipe nommé (avec mkfifo) à la place du fichier
de log, et tu fais un script à la noix qui lit ligne par ligne sur ce pipe,
réécrit chaque ligne dans le vrai fichier de log, et fait une action
correspondant à la ligne qu'il a lue.

Je n'ai trouve que tail -f, mais personne n'a dit si c'etait bien ou
pas... ni pourquoi!


Il fait du polling, c'est moche, et ça risque aussi de laisser passer des
trucs...

Avatar
Zeyes
Zeyes :

Par exmple, que les signaux ne sont pas adaptes et inotify est fait pour
ca...


Il n'y a pas d'api standard sous unix pour être prévenu de la modification
d'un fichier. Le truc que tu a l'air de vouloir utiliser, c'est dnotify, qui
a été introduit il y a quelques années sous linux, et qui m'a l'air
totalement abracadabrant à utiliser. D'ailleurs, ils ont sorti inotify
depuis, qui m'a l'air nettement plus utilisable (man inotify) (je n'ai
utilisé aucun des deux, je n'ai fait que lire rapidement les pages de man).

Oui, tu peux utiliser inotify sur le fichier, et avancer ta tête de lecture
à chaque fois qu'on te notifie que le fichier a été modifié. Mais c'est
tellement plus simple de lire sur un pipe...
Ca marche: c'est vraiment plus simple avec inotify!!

On peut utiliser poll()....
;-)


Avatar
Zeyes
Zeyes :

Ok mais finalement, tu fais comment si le fichier log est genere par un
truc dont t'as pas les sources (pas de www, par exemple)?


Je te l'ai dit : tu mets un pipe nommé (avec mkfifo) à la place du fichier
de log, et tu fais un script à la noix qui lit ligne par ligne sur ce pipe,
réécrit chaque ligne dans le vrai fichier de log, et fait une action
correspondant à la ligne qu'il a lue.
Ah ben nan: tu l'avais pas dit comme ca.....

Je comprends


Je n'ai trouve que tail -f, mais personne n'a dit si c'etait bien ou
pas... ni pourquoi!


Il fait du polling, c'est moche, et ça risque aussi de laisser passer des
trucs...



Avatar
Serge Nazarian
Serge Nazarian wrote:
Bonjour,

Je désire entreprendre une action dès qu'une certaine ligne est
écrite dans un fichier de log.
Quelqu'un aurait-il une idée sur la manière de procéder.

Merci pour toutes ces réponses.

Je ne veux pas de cron car je veux réagir dès l'apparition de la ligne
cherchée.
Il semble que cela soit possible d'après les messages précédents mais, comme
je ne comprends pas tout, quelqu'un aurait-il la bonté de me détailler point
par point ce que je dois faire.

Encore tous mes remerciements.
Cordialement,
--
Serge Nazarian

Cliquez ci dessous pour une réponse personnelle :
http://cerbermail.com/?CBBJUUv0pN

1 2 3