Как проверить системный журнал в 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?

NPE
источник
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)
Kenorb
источник
22

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

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

Nhnghia
источник
14

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

Kshiteejm
источник
2

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

vi +'syntax on' /var/log/syslog
Энди Карлсон
источник
-10

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

:/bin# busybox

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

NiceTIP
источник
Это совершенно не по теме, пожалуйста, удалите это из ответов.
Джеки Йе