Skip to content

Instantly share code, notes, and snippets.

@willwhui
Created July 19, 2018 16:34
Show Gist options
  • Save willwhui/8763c46ad1efa513094f1b189f19f3e1 to your computer and use it in GitHub Desktop.
Save willwhui/8763c46ad1efa513094f1b189f19f3e1 to your computer and use it in GitHub Desktop.
Linux系统日志防爆
Linux系统日志防爆
@willwhui
Copy link
Author

willwhui commented Jul 19, 2018

当系统有异常频繁发生的时候,日志就会疯狂膨胀,把磁盘空间耗尽。

利用df和du查看磁盘空间占用情况,参见
https://blog.csdn.net/u010003835/article/details/52923620

此时会出现各种错误。
首先,进入/var/log目录,将大文件删除。
然后,编辑文件/etc/logrotate.conf,做以下修改:

# rotate log files weekly
# weekly <---------- 注释掉它,让日志被存档得勤快点
daily <-------------- 增加这个,每天存档一次

# keep 4 weeks worth of backlogs
# rotate 4 <---------- 注释掉它,让日志不要保留那么多存档(反正你又不会看)
rotate 1 <------------- 增加这个,保留一份就可以了

# max log file size <------------ 增加这两行
maxsize 100M <-------------- 意思是,日志文件大于100M的时候,就触发存档。结合上面的修改,每次只保留一个存档。

当然,如果愿意的话,修改100M为更大或更小,都是可以的。
但是如果太小的话,我怀疑会产生问题:
如果日志生成得很疯狂的话,飞快地就超过大小限制了,
那么,
logrotate程序会不断的存档和删除,可能会导致设备运行缓慢,磁盘损耗,等问题。

如何应用修改的配置文件。

根据这里https://unix.stackexchange.com/questions/116136/how-to-make-log-rotate-change-take-effect

logrotate uses crontab to work. It's scheduled work, not a daemon, so no need to reload its configuration.

翻译:logrotate 通过crontab来工作。它是个计划任务,不是一个后台服务,所以不需要(手动)重新加载它的配置。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment