web-dev-qa-db-fra.com

Combinant tail && journalctl

Je copie les journaux de ma propre application et de mes postgres.

tail -f /tmp/myapp.log /var/log/postgresql/postgresql.main.log

Je dois inclure les journaux de pgpool. Auparavant, il s'agissait de syslog, mais maintenant il est dans journalctl.

Existe-t-il un moyen de lier ensemble queue -f && journalctl -f?

34
bikey

Vous pouvez utiliser:

journalctl -u service-name -f

-f, --suivre

Afficher uniquement les entrées de journal les plus récentes et imprimer en continu les nouvelles entrées au fur et à mesure qu'elles sont ajoutées au journal.

Ici, j'ai ajouté "service-name" pour distinguer cette réponse des autres; vous remplacez le nom du service réel au lieu du texte service-name.

47
Toufic

Vous pouvez transmettre vos entrées de journal à journal :

systemd-cat tail -f /tmp/myapp.log /var/log/postgresql.log

puis utilisez journalctl -f... bien que comme Mark l'a mentionné, cela imprimera toutes les entrées du journal.


Une façon de filtrer uniquement les messages de ces journaux et de cette unité particulière consiste à utiliser un SYSLOG_IDENTIFIER c'est-à-dire modifier le fichier d'unité et sous [Service] section ajouter par exemple.

SyslogIdentifier=my_stuff

redémarrez l'unité puis exécutez systemd-cat avec le même identifiant

systemd-cat -t my_stuff tail -f /tmp/myapp.log /var/log/postgresql.log

et finalement interroger le journal uniquement pour cet identifiant particulier:

journalctl -f -t my_stuff
20
don_crissti

Si bash est disponible, vous pouvez utiliser substitution de processus comme l'un des paramètres tail:

tail -f /tmp/myapp.log /var/log/postgresql/postgresql.main.log <(journalctl -f)
4
Jeff Schaller

essayez quelque chose comme:

tail -f /tmp/myapp.log >> /tmp/tail.log &
journalctl -f >> /tmp/tail.log &
tail -f /tmp/tail.log
1
Paul