上部のログは毎日作成され、多くのスペースを必要とすることがわかります
ls -l /var/log/atop/
total 1634632
-rw-r--r-- 1 root root 127992086 Aug 30 01:49 atop_20180829
-rw-r--r-- 1 root root 262277153 Aug 31 00:00 atop_20180830
-rw-r--r-- 1 root root 321592670 Sep 1 00:00 atop_20180831
-rw-r--r-- 1 root root 330041977 Sep 2 00:00 atop_20180901
-rw-r--r-- 1 root root 269040388 Sep 3 00:00 atop_20180902
-rw-r--r-- 1 root root 274807097 Sep 4 00:00 atop_20180903
-rw-r--r-- 1 root root 85426960 Sep 4 06:03 atop_20180904
-rw-r--r-- 1 root root 0 Sep 4 06:03 daily.log
たとえば、トップログを5ログのみに制限する方法(最後の5日)
RH/CentOSでは、atop
はlogrotate
によって規制されていません。
/usr/share/atop/atop.daily
には、atop
ログファイルのローテーションを処理するためのサンプルスクリプトがあります。
次のように、28日より古いログを削除する検索行としてのスクリプト。
# delete logfiles older than four weeks
# start a child Shell that activates another child Shell in
# the background to avoid a zombie
#
( (sleep 3; find $LOGPATH -name 'atop_*' -mtime +28 -exec rm {} \;)& )
そのスクリプトを/etc/cron.daily
にコピーして、日数を5に変更できます。
( (sleep 3; find $LOGPATH -name 'atop_*' -mtime +5 -exec rm {} \;)& )
毎日のファイルを処理することも少し不便です。上記のスクリプトを使用して、純粋な毎日のローテーションを行う予定がない場合は、次のように/etc/sysconfig/atop
を編集して、たとえば10分間の期間を変更することもできます。
INTERVAL=600
別の方法として、毎日ローテーションを続けたい場合は、次のように/etc/logrotate.d/atop
にlogrotate
ファイルを作成できます。
/var/log/atop/atop_201[0-9][0-9][0-9][0-9][0-9] {
missingok
daily
nodateext
rotate 5
ifempty
nocreate
postrotate
/usr/bin/find /var/log/atop/ -maxdepth 1 -mount -name atop_201\[0-9\]\[0-9\]\[0-9\]\[0-9\]\[0-9\]\* -mtime +40 -exec /bin/rm {} \;
endscript
}
logrotate
バージョンを実行している場合は、日次ファイルを保持する必要があり、INTERVALパラメーターは変更しないでください。