Linux系统下var/log/journal
常常霸占着大量空间,但又一般情况毫无用处,因此需要进行一些设定来控制日志大小。
题外话
作为一个linux小白,也就电脑上装了个虚拟机,20G内存,如果不是写作业把电脑内存用爆了,大概也不会注意到它吧。
我的系统是Ubuntu 18
,应该所有linux都适用。
查看占用内存
处理到var/log/journal
下查看内存占用,还可以直接输入以下命令查看:
1 | journalctl --disk-usage |
删除日志
方法一:通过日志可存在的时间
通过设置日志可存在的时间长度来删除日志:
1 | sudo journalctl --rotate |
第二行:
这里可选的参数:s是秒,m是分,h是小时,d是日,w是星期,months是月。
因此一般不太可能出现前一秒生成的日志,因此设置时长为1秒可以删除所有日志。
但如果之后想保存一段时间的日志,需要重新设置一下,比如我设置为1个月。
第一行:
这里rotate的作用是将一个active的日志变为archived,也就是可能现在在录入日志,把在此之前的日志封装为一个,并换下一个文件进行日志记录。
这样可以把在此之前的日志全部清理,当然,不用这个命令也是可以的。
方法二:通过日志可存在的最大内存
除了用时间,当然也可以用空间来删除
1 | sudo journalctl --rotate --vacuum-size=50M |
这里是指删除到小于50M,rotate在一些新版本种可以写在一行种。
空间常见的就是KMGT四个单位
方法三:直接删除文件
把整个文件夹全部删除也是没有问题的,不过我个人觉得有上面的方法为什么还要硬核删除呢。
设置日志参数
日志文件过大无非是因为没有针对日期和内存大小的自动清理机制,可以通过一些设置来实现。
修改的文件是/etc/systemd/journald.conf
设置最大占用空间
1 | SystemMaxUse=100M |
设置最长保存时间
1 | MaxFileSec=5day |