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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Lucas Levrel
Le #21680181
Le 4 mai 2010, Mihamina Rakotomandimby a écrit :

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?



C'est pas tout à fait ce que tu demandes, mais vim se rappelle où était le
curseur quand tu rouvres un fichier.

--
LL
Cyrille Lefevre
Le #21690711
Le 04/05/2010 07:54, Mihamina Rakotomandimby a écrit :
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 lectu re?





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.
Publicité
Poster une réponse
Anonyme