💬

【Linux】tailコマンドについてご紹介します。

2021/12/02に公開

はじめに

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コマンドについてご紹介しました。
業務でも頻繁に使用するコマンドになります。

参考記事

tailコマンドについて詳しくまとめました 【Linuxコマンド集】

Discussion