Skip to content

Instantly share code, notes, and snippets.

@nikushi
Last active December 14, 2015 15:09
Show Gist options
  • Save nikushi/5105939 to your computer and use it in GitHub Desktop.
Save nikushi/5105939 to your computer and use it in GitHub Desktop.
1日1回、日付変更以後に前日分のログファイルを前日日付でcompressしてローテートするサンプル
/var/log/myapp/app.log {
rotate 30
daily
missingok
ifempty
compress
dateext
extension .log
lastaction
/bin/mv /var/log/myapp/app-`date '+%Y%m%d'`.log.gz /var/log/myapp/app-`date '+%Y%m%d' -d '1days ago'`.log.gz
endscript
}
@nikushi
Copy link
Author

nikushi commented Mar 7, 2013

ifempty        # 空ファイルでもローテートする。
               # 過去ログを`ls | wc -l`などするときに
               # 日数と数を合わせたいので。
dateext        # ローテートしたファイルに実行時の日付を
               # 付ける。ただし、00:00以降にlogrotateを実行する
               # 場合は、ログ内容と日付が乖離するので別途
               # lastactionで日付を前日分に変えている。
extension .log # ローテート後のファイル名の場所の末尾に.log 
               # を持ってくる。 圧縮する場合は.log.gzになる。
               # 本オプション指定ない場合はapp.log-yyyymmdd となり
               # 微妙なので調整のため。
lastaction     # 最後に実行するコマンド
               # postrotateを使わないのはpostrotateはcompressする前
               # に実行されるため。compressしてlastactionが実行される。

@nikushi
Copy link
Author

nikushi commented Mar 7, 2013

ローテート後のファイル名

app-20130307.log.gz # gunzip => app-20130101.log

@nikushi
Copy link
Author

nikushi commented Mar 7, 2013

設定ファイルをdry-runするメモ

$ logrotate -dv /etc/logrotate.d/myapp

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment