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?


la source

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

taliezin
la source
12

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

tail -n0 -f some.log
fredtantini
la source
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é.
Ragu Rathish
la source
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!

Number16BusShelter
la source