Linux

如何在日誌上自動旋轉

  • February 14, 2022

我們可以看到每天都會創建頂級日誌並且佔用大量空間

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/CentOSatop中不受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參數。

引用自:https://unix.stackexchange.com/questions/466702