liseur de log qui sait ou s'est-il arret
Le
Mihamina Rakotomandimby
Bonjour,
J'ai besoin de lire "quand je veux" de longs logs.
Mais je ne souhaite pas relire les lignes que j'ai deja lu.
Existe-il un truc qui marque la derniere ligne qu'il a lu d'un fichier,
et que quand je le reinvoque sur ce fichier ne me montre que les lignes
qui ont été ajoutées apres ma précédente lecture?
--
Architecte Informatique chez Blueline/Gulfsat:
Administration Systeme, Recherche & Developpement
+261 34 29 155 34 / +261 33 11 207 36
J'ai besoin de lire "quand je veux" de longs logs.
Mais je ne souhaite pas relire les lignes que j'ai deja lu.
Existe-il un truc qui marque la derniere ligne qu'il a lu d'un fichier,
et que quand je le reinvoque sur ce fichier ne me montre que les lignes
qui ont été ajoutées apres ma précédente lecture?
--
Architecte Informatique chez Blueline/Gulfsat:
Administration Systeme, Recherche & Developpement
+261 34 29 155 34 / +261 33 11 207 36

Poser une question


C'est pas tout à fait ce que tu demandes, mais vim se rappelle où était le
curseur quand tu rouvres un fichier.
--
LL
Bonjour,
la réponse qui fonctionne partout...
fonctionne également si le fichier a été réinitialisà ©, enfin, sauf si
le nouveau fichier est plus grand que l'ancien...
au besoin, décommenter les lignes précédées d'un #
log=log
last=${log}.last
if [ -f "${last}" ]; then
oldpos=$(cat "${last}")
oldpos=$(( ${oldpos} + 1 ))
# newer=$(find "${log}" -newer "${last}")
wc -l < "${log}" > "${last}"
# if [ -n "${newer}" ]; then
# oldpos=0
# else
newpos=$(cat "${last}")
newpos=$(( ${newpos} + 1 ))
diff=$(( ${newpos} - ${oldpos} ))
case ${diff} in
0) exit ;;
-*) oldpos=0 ;;
esac
# fi
else
oldpos=0
fi
tail -n +${oldpos} "${log}"
Cordialement,
Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.