Поєднання хвоста та & журналу


27

Я підписую журнали власної програми та postgres.

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

Мені потрібно включити журнали pgpool. Раніше це був syslog, але зараз він є в journalctl.

Чи є спосіб зв’язати хвіст -f && journalctl -f разом?

Відповіді:


27

Ви можете використовувати:

journalctl -u service-name -f

-f, - далі

Показуйте лише останні записи у журналі та постійно друкуйте нові записи, коли вони додаються до журналу.

Тут я додав "ім'я служби", щоб відрізнити цю відповідь від інших; ви замінюєте фактичну назву послуги замість тексту service-name.


20

Ви можете переслати свої записи в журнал :

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

а потім скористайтеся journalctl -f... хоча, як згадував Марк, це надрукує всі записи журналу.


Один із способів відфільтрувати лише повідомлення з тих журналів і з цього конкретного підрозділу - це використовувати чітке, SYSLOG_IDENTIFIERтобто редагувати файл одиниці, а під [Service]розділом додати напр.

SyslogIdentifier=my_stuff

перезавантажте пристрій, а потім запустіть systemd-catз тим самим ідентифікатором

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

і, нарешті, запитувати журнал лише для цього конкретного ідентифікатора:

journalctl -f -t my_stuff

4

Якщо у вас є bash, ви можете використовувати підстановку процесу як один з tailпараметрів:

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

Це елегантний спосіб, який я також намагався, але це не працює. Хвост показує, що він використовує / dev / fd / xx, але журнали не відображаються.
bikey

виправити; / dev / fd / xxx - тимчасова труба, яку bash використовує для здійснення підстановки процесу; будь-який вихід журналу з'явиться там.
Джефф Шаллер

5
Ви, мабуть, не хочете стежити за всім журналом, а лише за журналом для pgpool. Припустивши, що послуга названа pgpool.service, спробуйте journalctl -fu pgpool.service. Крім того, якщо ви не запускаєте це як root, переконайтеся, що користувач знаходиться в systemd-journalгрупі!
Марк Стосберг

1

спробуйте щось на кшталт:

tail -f /tmp/myapp.log >> /tmp/tail.log &
journalctl -f >> /tmp/tail.log &
tail -f /tmp/tail.log
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.