1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

logrotate の世代や圧縮を後から設定する

Posted at

少し前に新規でインストールしたサーバのログを、あまり考えずに「残す世代多め」「圧縮はしない」という設定で使い始めていました。
運用し始めてから /var/log の容量が気になり始めたので、世代を短くして、圧縮をかける設定にしました。
設定変更したあとに rotate されるタイミングで、自動的に「世代を短くしたぶんの過去ログは消えるのか」「圧縮されていなかった過去ログは圧縮されるのか」が気になったので検証してみました。

試した環境

# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
# rpm -q logrotate
logrotate-3.8.6-19.el7.x86_64

元の設定

「過去ログは15世代」「圧縮しない」という設定になっています。

/etc/logrotate.d/httpd
rotate 15

その結果、このようなログになっています。

access_log
access_log-20210905
access_log-20210912
access_log-20210919
access_log-20210926
access_log-20211003
access_log-20211010
access_log-20211017
access_log-20211024
access_log-20211031
access_log-20211107
access_log-20211114
access_log-20211121
access_log-20211128
access_log-20211205
access_log-20211212

新しい設定

「過去ログは10世代」「圧縮する」「けど、一番新しい過去ログは圧縮しない」という設定に変更しました。

/etc/logrotate.d/httpd
rotate 10
compress
delaycompress

つまり、こうなってほしいです。

access_log
access_log-20211017.gz
access_log-20211024.gz
access_log-20211031.gz
access_log-20211107.gz
access_log-20211114.gz
access_log-20211121.gz
access_log-20211128.gz
access_log-20211205.gz
access_log-20211212.gz
access_log-20211219

rotate された結果

access_log
access_log-20211017.gz
access_log-20211024.gz
access_log-20211031.gz
access_log-20211107.gz
access_log-20211114.gz
access_log-20211121.gz
access_log-20211128.gz
access_log-20211205.gz
access_log-20211212.gz
access_log-20211219

はい、理想どおりです。

  • 圧縮されていなかった過去ログはすべて圧縮される(今回 gz になる access_log-20211212 以外も圧縮される)
  • 残す世代数より古い過去ログはすべて削除される(今回押し出される 20211010 だけでなく、もっと古いログも削除される)
  • いまのログファイルが過去ログ(非圧縮)になる

すべてが行われました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?