logrotateのオプションについて

いつも通りメモ

[code lang=text] /opt/encode/encode.log{ daily rotate 7 missingok notifempty minsize 1M create 0664 astel astel compress delaycompress sharedscripts postrotate /sbin/service nginx restart endscript } [/code]

実際に使ってるわけじゃないけど例としてこれをあげる 1行目の/opt/encode/encode.log これがlogrotateするファイル

複数指定もできる

[code lang=text] /var/log/hoge/.log /var/log/piyo/.log /var/log/foo/*.log { [/code]

daily ログをローテートする周期 1日 daily 毎週 weekly 毎月 monthly

rotate 7 ローテートしたログを保存しておく期間 7にしているので7日たつと7日前のファイルは削除される

missingok ローテートするファイルがなくてもエラー出力をしない

notifempty ローテートするファイルの中身が空だった場合処理しない

minsize 1M 指定したファイルが1MB以下だった場合は処理しません 個人的にはあまり好きじゃない

create 0664 astel astel 新規ログファイルを作る際に所有者やパーミッションを指定

compress ログを圧縮して保存する gzで圧縮される

delaycompress 1つ前のファイルは圧縮しないで2つ前のは圧縮される

hoge.log hoge.log.1 hoge.log.2.gz hoge.log.3.gz

sharedscripts postrotate /sbin/service nginx restart endscript

sharedscripts コマンドを実行できる postrotateまたはprerotateで記述したコマンドを実行

postrotateまたはprerotateとは

prerotate ログファイルをローテーションする前 postrotate ログファイルをローテションした後

/sbin/service nginx restart コマンド 意味もなくnginx restartとか書いてる

endscript 多分コマンドの最後を示す