web-dev-qa-db-ja.com

ログの上で自動回転する方法

上部のログは毎日作成され、多くのスペースを必要とすることがわかります

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
yael

RH/CentOSでは、atoplogrotateによって規制されていません。

/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/atoplogrotateファイルを作成できます。

/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パラメーターは変更しないでください。

3
Rui F Ribeiro