■ logrotateの前提条件
ログローテーションはcronで動いているので、crondを確認sudo systemctl status crond => 動いていなかったら、「sudo systemctl start crond」
■ どうすればいい?
/etc/logrotate.d/下にサービスごとの設定ファイルを用意する/etc/logrotate.d/【サービスの設定ファイル】設定ファイルの確認
logrotate -dv /etc/logrotate.d/【サービスの設定ファイル】 * -dオプション => 実際にlogrotateは行われずに、どのように動作するのかをデバッグすることができる * -vオプション => 詳細を標準出力に表示設定反映
logrotate /etc/logrotate.d/【サービスの設定ファイル】 logrotate -f /etc/logrotate.d/【サービスの設定ファイル】 * -fオプション => 強制実行
【例】 /etc/logrotate.d/tomcat
sudo vi /etc/logrotate.d/tomcat# weekly /usr/tomcat/logs/catalina.out { missingok # ログファイルが無くてもエラーを出さない notifempty # ログファイルが空ならローテートしない copytruncate # 対象のファイルをコピーしてから、オリジナルのログファイルの内容を切り詰める weekly # 週でローテート rotate 4 # 残す世代数 delaycompress # 次回のログローテーションサイクルになるまで圧縮しない create 0644 tomcat tomcat # ログファイルのパーミッションと所有ユーザの設定 } # daily catalina.*.log localhost.*.log manager.*.log host-manager.*.log localhost_access_log.*.txt { missingok # ログファイルが無くてもエラーを出さない notifempty # ログファイルが空ならローテートしない copytruncate # 対象のファイルをコピーしてから、オリジナルのログファイルの内容を切り詰める daily # 日でローテート rotate 31 # 残す世代数 delaycompress # 次回のログローテーションサイクルになるまで圧縮しない create 0644 tomcat tomcat # ログファイルのパーミッションと所有ユーザの設定 }設定反映
sudo logrotate /etc/logrotate.d/tomcat
参考文献
https://qiita.com/mk34/items/d55e08a5c657e2e022eehttp://www.itmedia.co.jp/help/tips/linux/l0291.html
http://blog.willnet.in/entry/20081001/1222836601
http://changineer.info/server/logging/logrotate.html
設定ファイルの設定項目の説明が豊富
https://qiita.com/Esfahan/items/a8058f1eb593170855a1
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/747logrotatecmd.html
Tomcat
https://qiita.com/n_slender/items/b977831051c6fa03da71https://qiita.com/yusukaaay/items/fed49a4cb4124a51fa68