ログから自動回転する方法

ログから自動回転する方法

一番上にログが毎日作成され、多くのスペースを占めることがわかります。

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日間)に制限する方法

ベストアンサー1

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

代わりに、本当に毎日回転したい場合は、次logrotateのようなファイルを作成できます/etc/logrotate.d/atop

/var/log/atop/atop_20[0-9][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_20\[0-9\]\[0-9\]\[0-9\]\[0-9\]\[0-9\]\[0-9\]\* -mtime +40 -exec /bin/rm {} \;
    endscript
    }

バージョンを実行している場合は、毎日logrotateファイルを保持する必要があり、INTERVALパラメーターを変更しないでください。

おすすめ記事