web-dev-qa-db-ja.com

Linux上のBashでsyslogをチェックする方法は?

Cでは、次のように記録します。

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

Linuxでは、ログをどのように確認できますか?

63
kern

less /var/log/syslogはどうですか?

97
NPE

Fedora 19では、答えは/var/log/messagesのようです。ただし、/etc/rsyslog.confが変更されている場合は確認してください。

38
Hackonteur

デフォルトでは、/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

トラブルシューティングには、トレースツール(Linuxではstrace、Unixではdtruss)を使用します。例:

Sudo strace -fp $(cat /var/run/syslogd.pid)
16
kenorb

tail -f /var/log/syslog | grep process_nameここで、process_nameは、関心のあるプロセスの名前です。

14
kshiteejm

非常に便利なユーティリティはjournalctlです。

たとえば、syslogをコンソールに表示するには:journalctl -t <syslog-ident>、ここで<syslog-ident>は、syslogを初期化するために関数openlogに付与したIDです。

13
nhnghia