Linux
如何在日誌上自動旋轉
我們可以看到每天都會創建頂級日誌並且佔用大量空間
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
作為替代方案,如果您確實想每天旋轉它,您可以創建一個
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參數。