💬
【Linux】tailコマンドについてご紹介します。
はじめに
Linuxのログ確認の際に使用するtailコマンドについてご紹介します。
tailコマンドとは?
ファイルの最終行から数行を表示するコマンドになります。
主にログの確認で使用されることが多いです。
tailコマンドのオプション
オプション | 説明 | 指定方法 |
---|---|---|
-c | 出力する文字数を指定する。 | -c 文字数 |
-n | 出力する行数を指定する。 | -n 行数 |
-q | ファイル名を表示しない | -q ファイル名 |
-v | ファイル名を常に表示する。 | -v ファイル名 |
-f | ファイルの追記を監視する。 | -f ファイル名 |
※初心者の方は、とりあえず-f
を抑えれば業務ではなんとかなります。
tailコマンドの使用例
※僕がよく使用する使用例についてご紹介します。
①通常使用
最終行から10行表示します。
※デフォルトは10行表示になります。
コマンド
tail ファイル名
実行例
[root@testlinux01 ~]# tail /var/log/messages
Dec 2 20:59:49 testlinux01 systemd[1460]: Reached target Paths.
Dec 2 20:59:49 testlinux01 systemd[1460]: Starting D-Bus User Message Bus Socket.
Dec 2 20:59:49 testlinux01 systemd[1460]: Started Mark boot as successful after the user session has run 2 minutes.
Dec 2 20:59:49 testlinux01 systemd[1460]: Reached target Timers.
Dec 2 20:59:49 testlinux01 systemd[1460]: Listening on D-Bus User Message Bus Socket.
Dec 2 20:59:49 testlinux01 systemd[1460]: Reached target Sockets.
Dec 2 20:59:49 testlinux01 systemd[1460]: Reached target Basic System.
Dec 2 20:59:49 testlinux01 systemd[1460]: Reached target Default.
Dec 2 20:59:49 testlinux01 systemd[1460]: Startup finished in 45ms.
Dec 2 20:59:49 testlinux01 systemd[1]: Started User Manager for UID 1000.
[root@testlinux01 ~]#
②出力行数指定
最終行から指定した行数表示させます。
コマンド
tail -n 行数ファイル名
- 15行表示
実行例
[root@testlinux01 ~]# tail -n 15 /var/log/messages
Dec 2 20:59:49 testlinux01 systemd[1460]: Reached target Basic System.
Dec 2 20:59:49 testlinux01 systemd[1460]: Reached target Default.
Dec 2 20:59:49 testlinux01 systemd[1460]: Startup finished in 45ms.
Dec 2 20:59:49 testlinux01 systemd[1]: Started User Manager for UID 1000.
Dec 2 21:01:01 testlinux01 systemd[1]: Starting dnf makecache...
Dec 2 21:01:03 testlinux01 dnf[1527]: CentOS-8 - AppStream 3.4 kB/s | 4.3 kB 00:01
Dec 2 21:01:05 testlinux01 dnf[1527]: CentOS-8 - AppStream 3.1 MB/s | 8.1 MB 00:02
Dec 2 21:01:07 testlinux01 dnf[1527]: CentOS-8 - Base 9.3 kB/s | 3.9 kB 00:00
Dec 2 21:01:08 testlinux01 dnf[1527]: CentOS-8 - Base 4.4 MB/s | 3.5 MB 00:00
Dec 2 21:01:09 testlinux01 dnf[1527]: CentOS-8 - Extras 5.0 kB/s | 1.5 kB 00:00
Dec 2 21:01:09 testlinux01 dnf[1527]: メタデータキャッシュを作成しました。
Dec 2 21:01:09 testlinux01 systemd[1]: Started dnf makecache.
Dec 2 21:01:33 testlinux01 kernel: hv_balloon: Balloon request will be partially fulfilled. Balloon floor reached.
Dec 2 21:02:10 testlinux01 systemd[1460]: Starting Mark boot as successful...
Dec 2 21:02:10 testlinux01 systemd[1460]: Started Mark boot as successful.
[root@testlinux01 ~]#
- 3行表示
実行例
[root@testlinux01 ~]# tail -n 3 /var/log/messages
Dec 2 21:01:33 testlinux01 kernel: hv_balloon: Balloon request will be partially fulfilled. Balloon floor reached.
Dec 2 21:02:10 testlinux01 systemd[1460]: Starting Mark boot as successful...
Dec 2 21:02:10 testlinux01 systemd[1460]: Started Mark boot as successful.
[root@testlinux01 ~]#
③ファイル出力の監視
ファイル出力を監視します。
※業務で頻繁に使用する方法になります。
コマンド
tail -f ファイル名
- 通常通り出力
実行例
[root@testlinux01 ~]# tail -f /var/log/messages
Dec 2 21:01:08 testlinux01 dnf[1527]: CentOS-8 - Base 4.4 MB/s | 3.5 MB 00:00
Dec 2 21:01:09 testlinux01 dnf[1527]: CentOS-8 - Extras 5.0 kB/s | 1.5 kB 00:00
Dec 2 21:01:09 testlinux01 dnf[1527]: メタデータキャッシュを作成しました。
Dec 2 21:01:09 testlinux01 systemd[1]: Started dnf makecache.
Dec 2 21:01:33 testlinux01 kernel: hv_balloon: Balloon request will be partially fulfilled. Balloon floor reached.
Dec 2 21:02:10 testlinux01 systemd[1460]: Starting Mark boot as successful...
Dec 2 21:02:10 testlinux01 systemd[1460]: Started Mark boot as successful.
Dec 2 21:06:10 testlinux01 systemd[1]: Starting Cleanup of Temporary Directories...
Dec 2 21:06:10 testlinux01 systemd[1]: Started Cleanup of Temporary Directories.
Dec 2 21:06:33 testlinux01 kernel: hv_balloon: Balloon request will be partially fulfilled. Balloon floor reached.
- 文字列を抽出した状態で監視
※エラーログや特定のログの出力を監視する際に使用します。
実行例
[root@testlinux01 ~]# tail -f /var/log/messages | grep kernel
Dec 2 21:01:33 testlinux01 kernel: hv_balloon: Balloon request will be partially fulfilled. Balloon floor reached.
Dec 2 21:06:33 testlinux01 kernel: hv_balloon: Balloon request will be partially fulfilled. Balloon floor reached.
- ファイル名を表示しながらログ監視
実行例
[root@testlinux01 ~]# tail -v /var/log/messages -f
==> /var/log/messages <==
Dec 2 21:01:09 testlinux01 dnf[1527]: CentOS-8 - Extras 5.0 kB/s | 1.5 kB 00:00
Dec 2 21:01:09 testlinux01 dnf[1527]: メタデータキャッシュを作成しました。
Dec 2 21:01:09 testlinux01 systemd[1]: Started dnf makecache.
Dec 2 21:01:33 testlinux01 kernel: hv_balloon: Balloon request will be partially fulfilled. Balloon floor reached.
Dec 2 21:02:10 testlinux01 systemd[1460]: Starting Mark boot as successful...
Dec 2 21:02:10 testlinux01 systemd[1460]: Started Mark boot as successful.
Dec 2 21:06:10 testlinux01 systemd[1]: Starting Cleanup of Temporary Directories...
Dec 2 21:06:10 testlinux01 systemd[1]: Started Cleanup of Temporary Directories.
Dec 2 21:06:33 testlinux01 kernel: hv_balloon: Balloon request will be partially fulfilled. Balloon floor reached.
Dec 2 21:11:33 testlinux01 kernel: hv_balloon: Balloon request will be partially fulfilled. Balloon floor reached.
最後に
今回は、tailコマンドについてご紹介しました。
業務でも頻繁に使用するコマンドになります。
Discussion