Fedora20からはsyslogがデフォルトでインストールされなくなって代わりにsystemdのjournalという機能が使われるのでメモ。
この辺りの変更についてFedoraではwikiページにプロポーサルがあります。日本語のニュースだとマイナビさんに。
ちょっと使った感じではjournalのほうが使いやすい感じがします。
さて、syslogがなくなってどうか変わるかというと、一番大きいのは/var/log/messagesが無くなったということですね。
masami@saga:~$ ls /var/log . anaconda boot.log btmp-20131001 cluster dnf.log firewalld glusterfs journal libvirt ppp README speech-dispatcher tallylog Xorg.0.log yum.log .. audit btmp chrony cups dnf.rpm.log gdm grubby lastlog pluto prelink samba sssd wtmp Xorg.0.log.old
それで今までのようにログを見たい場合はどうするかというとjournalctlというコマンドを使います。
引数無しでコマンドを使った場合は一番古いログから現在までのログが出るので今日の分だけ見るなら-bオプションを使うと良いです。
引数無しで実行した場合は一番古いログから出てきます。
masami@saga:~$ journalctl | head -n 2 -- Logs begin at Fri 2013-09-27 15:18:59 JST, end at Thu 2013-10-10 16:30:22 JST. -- Sep 27 15:18:59 localhost.localdomain systemd-journal[116]: Runtime journal is using 3.5M (max 1.5G, leaving 2.3G of free 15.6G, current limit 1.5G).
オプションの-bを使った場合は一番新しいbootのところからになります。
-- Logs begin at Fri 2013-09-27 15:18:59 JST, end at Thu 2013-10-10 16:31:12 JST. -- Oct 10 12:11:24 saga systemd-journal[141]: Runtime journal is using 3.5M (max 1.5G, leaving 2.3G of free 15.6G, current limit 1.5G).
この-bは整数を引数に取ることができて、例えば1回前のbootからのログを見たい場合は以下のようになります。
$ journalctl -b -1
引数に負数を渡した場合は最新から、正の整数の場合は一番古いログからという意味です。
オプションで-kを渡した場合はdmesgコマンドと同じです。
$ journalctl -k
dmesgと違う点は出力されるログの内容によっては文字列がボールドされてたり、赤字だったりと視覚的に見やすくなっています。
他に便利そうなオプションとしては--system、--userなんてのがあります。機能は名前から大体想像付くと思います。前者はカーネルとかのシステムが出すログですね。
逆順から見たい場合の-rも良いですね。
masami@saga:~$ journalctl -b -r | head -3 -- Logs begin at Fri 2013-09-27 15:18:59 JST, end at Thu 2013-10-10 16:44:31 JST. -- Oct 10 16:44:31 saga kernel: IPv6: MLD: clamping QRV from 1 to 2! Oct 10 16:44:07 saga gnome-session[1371]: [2273:2279:1010/164407:ERROR:platform_thread_linux.cc(99)] Failed to set nice value of thread to -10
出力する期間を指定することもできます。--since、--untilで両方使っても良いし片方だけでもOKです。
masami@saga:~$ journalctl -b --since "2013-10-10 16:12:00" --until "2013-10-10 16:17:30" -- Logs begin at Fri 2013-09-27 15:18:59 JST, end at Thu 2013-10-10 16:46:36 JST. -- Oct 10 16:12:01 saga dbus-daemon[512]: dbus[512]: [system] Activating service name='org.freedesktop.PackageKit' (using servicehelper) Oct 10 16:12:01 saga dbus[512]: [system] Activating service name='org.freedesktop.PackageKit' (using servicehelper) Oct 10 16:12:01 saga dbus-daemon[512]: dbus[512]: [system] Successfully activated service 'org.freedesktop.PackageKit' Oct 10 16:12:01 saga dbus[512]: [system] Successfully activated service 'org.freedesktop.PackageKit' Oct 10 16:13:16 saga kernel: IPv6: MLD: clamping QRV from 1 to 2! Oct 10 16:15:21 saga kernel: IPv6: MLD: clamping QRV from 1 to 2! Oct 10 16:16:49 saga gnome-session[1371]: [2039:2045:1010/161649:ERROR:platform_thread_linux.cc(99)] Failed to set nice value of thread to -10 Oct 10 16:17:26 saga kernel: IPv6: MLD: clamping QRV from 1 to 2!
systemdのunit名を指定してそれに関するログだけ出力させることもできます。
masami@saga:~$ journalctl -b -u sshd -- Logs begin at Fri 2013-09-27 15:18:59 JST, end at Thu 2013-10-10 16:51:44 JST. -- Oct 10 12:11:33 saga sshd[1022]: Server listening on 0.0.0.0 port 22. Oct 10 12:11:33 saga sshd[1022]: Server listening on :: port 22. Oct 10 12:11:33 saga systemd[1]: Starting OpenSSH server daemon... Oct 10 12:11:33 saga systemd[1]: Started OpenSSH server daemon.
"-p"オプションでログのレベル(journalctlだとpriority)による指定もできます。このレベルはsyslog(3)のlevelと一緒です。
レベル:名称
0:emerg
1:alert
2:crit
3:err
4:warning
5:notice
6:info
7:debug
このオプションは数値、名称どちらも使えます。
masami@saga:~$ journalctl -b -p err | head -n 3 -- Logs begin at Fri 2013-09-27 15:18:59 JST, end at Thu 2013-10-10 17:01:11 JST. -- Oct 10 12:11:27 saga kernel: sd 6:0:0:0: [sdc] No Caching mode page found Oct 10 12:11:27 saga kernel: sd 6:0:0:0: [sdc] Assuming drive cache: write through masami@saga:~$ journalctl -b -p 3 | head -n 3 -- Logs begin at Fri 2013-09-27 15:18:59 JST, end at Thu 2013-10-10 17:01:11 JST. -- Oct 10 12:11:27 saga kernel: sd 6:0:0:0: [sdc] No Caching mode page found Oct 10 12:11:27 saga kernel: sd 6:0:0:0: [sdc] Assuming drive cache: write through
と、こんな感じで色々とできますが、manによるとまだまだ機能があります♪