毎時間独自のログファイルを回転させるアプリケーションがあります。毎時間n
数日を過ぎたすべてのファイルを削除したいと思います。logrotate
事業政策のためにこうしなければなりませんでした。
logrotate
それでは、時間ごとにこのコマンドを実行するのと同じことは何ですか?
find /var/log/app -name "*.old" -mtime +1 -exec rm -f {} \;
答え1
logrotate
1日1回実行されます。スクリプトはここ/etc/cron.daily/logrotate
(CentOS 7)にあります。毎時間実行するには、まずに移動する必要があります/etc/cron.hourly/
。したがって、上記のコマンドの場合、対応するlogrotate
スクリプトは次のようになります。
$ cat /etc/logrotate.d/app
/var/log/app/*.old {
hourly
rotate 0
firstaction
/usr/bin/find /var/log/app/ -name "*.old" -mtime +1 -delete
endscript
nocreate
missingok
notifempty
}
答え2
テストする必要がある可能性は次のとおりです。
cat /etc/logrotate.d/customapp
/var/log/app/*.old {
daily
missingok
rotate 0
notifempty
}
なぜゼロを回転させるのですか?
カウントが0の場合、以前のバージョンは回転せずに削除されます。 (出典:男)