この記事では、Linuxにおけるログのローテーション設定に焦点を当てます。ログのローテーションは、長期間にわたるシステム運用で非常に重要なプロセスの一つです。この記事では具体的なコード例を交え、`logrotate`コマンドを用いた基本的な設定から高度な設定、さらには応用例まで解説します。
目次
ログローテーションとは?
ログローテーションとは、ログファイルが一定のサイズに達したときや一定期間が過ぎたときに、古いログを削除または圧縮して新しいログを作成するプロセスです。これにより、ディスクスペースの有効活用とログ管理が行えます。
logrotateコマンドの基本
Linuxにはログローテーションを行うための`logrotate`コマンドが用意されています。`logrotate`は非常に柔軟な設定が可能です。
# logrotateの設定ファイルを編集
sudo nano /etc/logrotate.conf
logrotateの基本的な設定例
ここでは基本的な`logrotate`の設定例を見てみましょう。
/var/log/wtmp {
monthly
minsize 1M
create 0664 root utmp
rotate 1
}
各オプションの解説
– `monthly`: ログのローテーションを月に1回行います。
– `minsize 1M`: ログファイルが1MB以上の時にローテーションを行います。
– `create 0664 root utmp`: ローテーション後に新しいログファイルを`root:utmp`の所有者として、`0664`のパーミッションで作成します。
– `rotate 1`: 古いログは1世代残してそれ以外は削除します。
応用例
1. ログファイルをメールで送信
/var/log/wtmp {
monthly
minsize 1M
create 0664 root utmp
rotate 1
mail example@example.com
}
2. ローテーション前後にスクリプトを実行
/var/log/wtmp {
monthly
prerotate
/usr/local/bin/some_script.sh
endscript
postrotate
/usr/local/bin/another_script.sh
endscript
}
3. 特定のディレクトリ内のログを一括でローテーション
/var/log/nginx/*.log {
daily
rotate 5
}
4. 圧縮オプションを使用
/var/log/wtmp {
compress
delaycompress
}
5. サイズが0のファイルをローテーションから除外
/var/log/*.log {
size +0
daily
}
まとめ
ログのローテーションはLinuxシステムの健全な運用において欠かせないプロセスです。この記事では`logrotate`コマンドを使用した様々な応用例を通じて、その設定方法を詳細に説明しました。これを機に、より効率的なログローテーション設定を行ってください。
コメント