CentOS 系统日志清理

2022-02-23 13:36:52 浏览数 (2)

随着系统的日益复杂, aliyun空间捉襟见肘,常常报系统磁盘空间超过80%, 甚是苦恼.

经常要手动去清理各类日志和备份文件,消耗大量时间和精力.

通常使用如下命令巡检:

代码语言:javascript复制
find / -size  100M -exec ls -lh {} ;

查找大于100M的文件, 包含日志文件和临时文件.

如果执行命令后报如下:

请调整你的权限

该目录下Linux 系统 /var/log/journal/ 堆满了日志往期

然后baidu.com了下, 原来该目录下还存在如下不同日志

/var/log/messages 绝大多数的系统日志都记录到该文件 /var/log/secure 所有跟安全和认证授权等日志都会记录到此文件 /var/log/maillog 邮件服务的日志 /var/log/cron crond计划任务的日志 /var/log/boot.log 系统启动的相关日志

检查当前journal使用磁盘量

du -t 100M /var journalctl --disk-usage

查看某个目录的文件大小并排序(单位为MB)

代码语言:javascript复制
du -hm --max-depth=1 /var/ | sort -n

清空 /var/log/journal/ 的步骤

a. 用echo命令,将空字符串内容重定向到指定文件中

代码语言:javascript复制
echo "" > system.journal

说明:此方法只会清空一次,一段时间后还要再次手动清空很麻烦,这里可以用以下命令让journalctl 自动维护

b. journalctl 命令自动维护文件大小

1)只保留近一周的日志

journalctl --vacuum-time=1w

如果想保留2天:journalctl --vacuum-time=2d

2)只保留500MB的日志

journalctl --vacuum-size=500M

3)直接删除 /var/log/journal/ 目录下的日志文件

rm -rf /var/log/journal/61af893a65b34e008dbf8a1038fd7e61

如果要手工删除日志文件,在删除前需要先轮转一次journal日志

代码语言:javascript复制
systemctl kill --kill-who=main --signal=SIGUSR2 systemd-journald.service

要启用日志限制持久化配置,可以修改 /etc/systemd/journald.conf

代码语言:javascript复制
SystemMaxUse=16M
ForwardToSyslog=no

然后重启日志service

代码语言:javascript复制
systemctl restart systemd-journald.service

检查journal是否运行正常以及日志文件是否完整无损坏

代码语言:javascript复制
journalctl --verify
[root@localhost log]# journalctl --verify
PASS: /var/log/journal/61af893a65b34e008dbf8a1038fd7e61/system.journal

总结:

测试是一门技术, 更是一门艺术. 也许你今天拥有的技术, 明天就会被淘汰. 同时需要我们开拓思维和眼界, 积极拥抱变化, 学习新知识, 新方法,新技能, 计算机领域讲究的是实践, 学习更要讲究方式方法. 学习和动手一定要结合, 光看不练,犹如看武功秘籍, 是永远成不了武功大侠的.

Story:

古语云:欲求其上上,而得其上;欲求其上,而得其中;欲求其中,而得其下.

说的就是起点高才能至高的道理。制定一个远大的目标,即使你达不到,只要不断地向它努力,最终肯定也会有所作为。定的目标很低,对于一点小小的成绩就心满意足,这样是干不了什么大事的。

0 人点赞