web-dev-qa-db-fra.com

Comment voir les dernières lignes x du journal du service systemctl

Je cherche un moyen d'imprimer simplement les dernières lignes X d'un service systemctl dans Debian. Je voudrais installer ce code dans un script, qui utilise les entrées de journal imprimées et les plus récentes. J'ai trouvé this post mais je n'ai pas pu le modifier à mes fins.

Actuellement, j'utilise ce code, qui me donne juste un petit extrait des fichiers journaux:

journalctl --unit=my.service --since "1 hour ago" -p err

Pour donner un exemple de ce à quoi le résultat devrait ressembler, tapez simplement la commande ci-dessus pour n'importe quel service et faites défiler jusqu'à la fin du journal. Copiez ensuite les 300 dernières lignes en partant du bas.

Mon idée est d'utiliser egrep ex. egrep -m 700 . mais je n'ai pas eu de chance depuis maintenant.

30
user3191334
journalctl --unit=my.service -n 100 --no-pager
67
sourcejedi

Il suffit de diriger la sortie vers tail:

journalctl --unit=my.service | tail -n 300

La commande tail imprime les dernières lignes (10 par défaut) reçues dans stdin vers stdout.

10
dr_

Si vous voulez voir le dernier n nombre de lignes et voir les nouveaux messages lorsqu'ils sont imprimés dans le journal, essayez ceci :

journalctl -u <service name> -n <number of lines> -f

-n indique le nombre de lignes que vous souhaitez voir à la fin du journal, et -f indique que vous souhaitez suivre le journal à mesure qu'il change.

7
Derek Soike

Juste:

journalctl -u SERVICE_NAME -e

Paramètre -e signifie:

-e --pagerend; Sautez immédiatement à la fin du journal à l'intérieur de l'outil de pageur implicite. Cela implique -n 1000 pour garantir que le pager ne tamponnera pas les journaux de taille illimitée. Cela peut être remplacé par un -n explicite avec une autre valeur numérique, tandis que -nall désactivera cette limite.

5
Daniel Kmak

depuis la solution de commande de queue déjà fournie.J'ai essayé en utilisant la commande sed et cela fonctionnait

La commande ci-dessous affichera les 300 dernières lignes

journalctl --unit=my.service | sed -e :a -e '$q;N;301,$D;ba' 
1
Praveen Kumar BS