Afficher uniquement les nouvelles entrées dans un fichier journal en pleine croissance


20
tail -f x.log

J'utilise cette commande pour voir un fichier journal croissant dans l'invite de commande.

Je suis intéressé uniquement à voir les lignes de journal qui sont écrites dans le fichier après l'exécution tail -fet je ne suis pas intéressé par les journaux qui ont été écrits dans le fichier avant de le faire tail -f. Mais la tail -fcommande au démarrage, prend les 10 dernières lignes et l'affiche.

Cela m'embrouille, parfois si ces journaux sont fraîchement générés (ou) ce sont de vieux journaux?

Alors, comment puis-je personnaliser tail -f pour afficher uniquement les nouvelles entrées?

logs  tail 

Réponses:


31

Tu peux essayer:

tail -n0 -f x.log

Depuis la page de manuel :

-n, --lines = K affiche les K
dernières lignes, au lieu des 10 dernières; ou utilisez -n + K pour sortir les lignes commençant par le Kème


12

Vous pouvez utiliser l' -n0option pour afficher 0 lignes. Donc

tail -n0 -f some.log

2

Vous pouvez également utiliser une lesscommande comme

  1. less file_name.log (le fichier journal sera ouvert et affichera la première page du fichier journal)
  2. appuyez sur shift+ f(pour agir comme pour tail -f)
  3. Si vous devez rechercher un mot clé dans le fichier journal. appuyez sur ctrl+ cpour quitter le mode queue et recherchez le mot-clé comme /mot- ?clé et mot - clé.

Cela n'affiche pas uniquement les nouvelles entrées dans un fichier journal en pleine croissance.
Spooky

0

J'ai créé cette approche lorsque j'ai dû surveiller les entrées à l'intérieur du conteneur Docker:

LOG_COUNT=0
LOGS=/var/logs/your_logs

function HEART_BEAT() {
    LOG_COUNT_NEW=$(wc -l $LOGS | awk '{ print $1 }')
    tail -n $(( $LOG_COUNT_NEW - $LOG_COUNT )) $LOGS
    LOG_COUNT=$LOG_COUNT_NEW
}

J'espère que cela t'aides!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.