Как проверить системный журнал в Bash в Linux?


86

В C мы регистрируем так:

syslog( LOG_INFO, "proxying %s", url );

В Linux как мы можем проверить журнал?


Не syslog пишет ли функция в системный журнал? (Если вы не говорите о нижнем уровне для доступа к кольцевому буферу сообщений ядра, но я сомневаюсь, urlчто это так int.)
Cascabel

2
этот Q следует перенести на unix.SE.com, не уверен, стоит ли отмечать его для внимания мода (я пометил).
Александр Малахов

Ответы:


128

Как насчет less /var/log/syslog?


1
@kern: Какой дистрибутив и версию Linux вы используете?
NPE

6
@kern: Проверьте содержимое вашего/etc/syslog.conf
NPE

25
tail -f /var/log/syslogдействительно хорош, потому что он показывает самый последний вывод, когда он попадает в системный журнал. Это может быть полезно, если вы пытаетесь устранить что-то вживую, а не смотреть на что-то, что было строго в прошлом.
counterbeing

17
на самом деле это /etc/rsyslog.conf для CentOs
Роман Гоенко

1
@ArunprasadRajkumar Другой способ - избежать регистрации сообщений, предназначенных для чтения обычными пользователями в системном журнале,
Дмитрий Григорьев

41

В Fedora 19 похоже, что ответ есть /var/log/messages. Хотя проверьте /etc/rsyslog.conf, не менялось ли оно.


Я проверил это на openSUSE и заметил, что он применим и к нему. Спасибо, что поделился!
silvioprog 01

23

По умолчанию он регистрируется в системном журнале по адресу /var/log/syslog, поэтому его можно прочитать:

tail -f /var/log/syslog

Если файл не существует, проверьте /etc/syslog.confфайл конфигурации для syslogd. Обратите внимание, что файл конфигурации может быть другим, поэтому проверьте запущенный процесс, если он использует другой файл:

# ps wuax | grep syslog
root      /sbin/syslogd -f /etc/syslog-knoppix.conf

Примечание. В некоторых дистрибутивах (например, Knoppix) все зарегистрированные сообщения могут быть отправлены в другой терминал (например /dev/tty12), поэтому для доступа, например, tty12попробуйте нажать Control+ Alt+ F12.

Вы также можете использовать lsofинструмент, чтобы узнать, какой файл журнала использует syslogdпроцесс, например

sudo lsof -p $(pgrep syslog) | grep log$ 

Чтобы отправить тестовое сообщение в syslogd в оболочке, вы можете попробовать:

echo test | logger

Для устранения неполадок используйте инструмент трассировки ( straceв Linux, dtrussв Unix), например:

sudo strace -fp $(cat /var/run/syslogd.pid)

22

Очень крутая утилита journalctl.

Например, чтобы отобразить системный журнал на консоли:, journalctl -t <syslog-ident>где <syslog-ident>идентификатор, который вы дали функции openlogдля инициализации системного журнала.


14

tail -f /var/log/syslog | grep process_name где process_nameимя интересующего нас процесса


2

Если вам нравится Vim, он имеет встроенную подсветку синтаксиса для файла системного журнала, например, он выделяет сообщения об ошибках красным цветом.

vi +'syntax on' /var/log/syslog

-10

на роутере Asus это можно сделать через

:/bin# busybox

есть также другие команды, связанные с.


Это совершенно не по теме, пожалуйста, удалите это из ответов.
Джеки Йе
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.