tail --sleep-intervalオプションを完全解説!初心者でもわかるログ監視の待機時間設定
生徒
「Linuxのtail -fって、ファイルの変化を監視できるんですよね?」
先生
「そうです。ログファイルなどの更新をリアルタイムで確認したいときに便利ですよ。」
生徒
「でも、どれくらいの間隔で変化をチェックしてるんですか?」
先生
「それは--sleep-intervalオプションを使えば、自分で秒数を決めることができますよ!」
1. tailコマンドとは?
tailコマンドは、Linuxでファイルの最後の数行を表示する基本的なコマンドです。特にログファイルのように新しい行が追加されるファイルでは、tail -fとすることで、ファイルの更新を監視し続けることができます。
例えば、ApacheやNginxのアクセスログの確認や、エラーが発生したときのログチェックなど、運用・監視の現場では欠かせないLinuxコマンドの一つです。
2. --sleep-intervalオプションとは?
--sleep-intervalオプションは、tail -fを使ってファイルを監視するときに、「何秒おきにファイルが更新されたかを確認するか」を設定できるオプションです。
通常、tail -fは1秒ごとに更新をチェックしていますが、それを2秒、5秒、10秒などに変更することで、サーバの負荷を軽くすることができます。
特に更新頻度が少ないファイルを監視する場合は、間隔を長くすることで無駄な処理を減らすことができます。
3. tail --sleep-intervalの基本構文
使い方はとてもシンプルです。以下のように、--sleep-intervalの後に秒数を指定するだけです。
tail -f --sleep-interval=5 /var/log/syslog
この例では、/var/log/syslogというログファイルを、5秒ごとに更新があったかチェックするようになります。
4. 実際に使ってみよう
まずは以下のように、通常のtailコマンドで更新を監視してみましょう。
tail -f /var/log/auth.log
次に、更新チェックの間隔を変えて、同じファイルを監視してみましょう。
tail -f --sleep-interval=3 /var/log/auth.log
この場合、3秒に1回のペースでファイルの更新を確認します。数値が大きいほど、更新チェックの頻度が下がり、CPU使用率を抑えることができます。
5. 簡単な例えで理解しよう
tail -fは、まるで教室の黒板をずっと見ているようなものです。そして--sleep-intervalは、「何秒おきに目を開けて黒板を見るか」を決めるものだと考えてください。
黒板に何か書かれる頻度が少ないなら、目を閉じてる時間(監視間隔)を長くしても困りません。これが、サーバのリソース節約につながるという考え方です。
6. よく使うオプションとの組み合わせ
tail --sleep-intervalは、他のオプションとも一緒に使えます。以下に組み合わせの例をいくつか紹介します。
最後の行数を指定しつつ監視間隔を設定
tail -n 50 -f --sleep-interval=2 /var/log/dpkg.log
ローテートに強い-Fと一緒に使う
tail -F --sleep-interval=10 /var/log/nginx/access.log
-Fはログローテートにも対応しており、--sleep-intervalと組み合わせることで、低負荷かつ安定したログ監視が可能になります。
7. sleep-intervalとシステム負荷の関係
サーバにとっては、毎秒ファイルの更新をチェックするのは小さな負担ですが、何十個もtailで監視していると、それが積み重なってCPU使用率が上がる原因になることもあります。
そのため、--sleep-intervalでチェック間隔を2秒や5秒に設定することで、より軽い処理で監視が続けられるようになります。
特に自動化スクリプトで複数のログをチェックするときや、仮想マシンのようにリソースが限られた環境では、このオプションがとても効果的です。
8. 他コマンドとの比較:watchとの違い
watchコマンドも一定時間ごとにコマンドを実行する機能を持っていますが、tail -fと--sleep-intervalは「ファイルの更新」を対象としています。
つまり、watchは任意のコマンドの再実行が目的ですが、tailはファイルの内容をリアルタイムで読みながら、その間隔を調整するのが目的です。