当前位置:首页 > Linux > 正文内容

Linux 系统 /var/log/journal/ 垃圾日志清理

Yusoon2年前 (2022-09-21)Linux575

systemd-journald是一个改进型日志管理服务,可以收集来自内核、系统早期启动阶段的日志、系统守护进程在启动和运行中的标准输出和错误信息,还有syslog的日志。

systemd-journal日志服务仅仅把日志集中保存在单一结构的日志文件/run/log中,由于日志是经历过压缩和格式化的二进制数据,所以在查看和定位的时候很迅速。

默认情况下并不会持久化保存日志,只会保留一个月的日志。

另外,一些rsyslog无法收集的日志也会被journal记录到。

rsyslog作为传统的系统日志服务,把所有收集到的日志都记录到/var/log/目录下的各个日志文件中。

常见的日志文件如下:

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

查看垃圾文件的方法

未清理前发现硬盘根分区空间告急,用 du -t 100M /var 或 journalctl –disk-usage 命令查看

# du -t 100M /var/log/
3604336 /var/log/journal/f0f31005fb5a436d88e3c6cbf54e25aa
3604344 /var/log/journal
5291552 /var/log/
# 
# journalctl --disk-usage
Archived and active journals take up 1.1G on disk.

发现/var/log/journal日志文件占用了近3G空间,每个日志文件体积高达8-128M,这些日志文件记录了很长时间以来的systemd情况,毫无价值,

journalctl --vacuum-size=10M 命令将其清理之后,腾出了2.7G的空间。

用df命令一查,/根分区果然宽敞了很多。

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

du -hm --max-depth=1 /var/ | sort -n

# du -hm --max-depth=1 /var/ | sort -n
1       /var/adm
1       /var/crash
1       /var/db
1       /var/empty
1       /var/games
1       /var/gopher
1       /var/kerberos
1       /var/local
1       /var/nis
1       /var/opt
1       /var/preserve
1       /var/spool
1       /var/tmp
1       /var/yp
131     /var/www
198     /var/lib
486     /var/cache
3695    /var/log
8513    /var/

清空 /var/log/journal 文件的方法

1、用echo命令,将空字符串内容重定向到指定文件中
echo "" > system.journal

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

2、journalctl 命令自动维护文件大小

1)只保留近一周的日志
journalctl --vacuum-time=1w

2)只保留500MB的日志
journalctl --vacuum-size=500M

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

问题与分析解决

执行 journalctl 命令时报错:

# journalctl --vacuum-time=1w
Error was encountered while opening journal files: Input/output error

问题分析:日志文件损坏
解决方法:删除之前的日志,并重启 journalctl 服务

mv journal/f9d400c5e1e8c3a8209e990d887d4ac1 journal/f9d400c5e1e8c3a8209e990d887d4ac1_bk_20190122
systemctl restart systemd-journald.service

查看 /var/log/journal/ 日志目录如下:

# ll /var/log/journal/
drwxr-sr-x  2 root systemd-journal  4096 Jan 22 11:26 f9d400c5e1e8c3a8209e990d887d4ac1
drwxr-sr-x+ 2 root systemd-journal 12288 Jan 14 15:37 f9d400c5e1e8c3a8209e990d887d4ac1_bk_20190122

然后,再执行 journalctl 限制日志的命令:

# journalctl --vacuum-time=1w
Vacuuming done, freed 0B of archived journals on disk.
# journalctl --vacuum-size=500M
Vacuuming done, freed 0B of archived journals on disk.

扫描二维码推送至手机访问。

版权声明:本文由Yusoon - ZBlog发布,如需转载请注明出处。

本文链接:https://blog.bee1001.com/?id=26

标签: linuxlogs
分享给朋友:

“Linux 系统 /var/log/journal/ 垃圾日志清理” 的相关文章

Linux上使用LNMP一键安装nginx

Linux上使用LNMP一键安装nginx

LNMP官网 安装LNMP稳定版nginxwget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz && tar zxf lnmp1.9.tar.gz && cd lnmp1.9 &&...

Linux操作系统安装docker和docker-compose

Linux操作系统安装docker和docker-compose

要想使用Docker不管是在Windows操作系统还是在Linux操作系统上搭建服务,首先服务器上要有支撑的Docker服务,今天我们来聊聊Linux操作系统安装Docker的步骤。 安装Docker方式的有好几种,比如使用yum源安装Docker、离线安装Docker等,其中离线安装又可以使用w...

介绍几个 Linux 命令

df -h 查看整个磁盘的空间使用情况 du -sh /* 查询某个路径下的数据大小 docker system prune -a 清理 docker 容器 find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr 查...

Linux中vim中进行替换/批量替换

˂a name="一:在 Vim 中进行文本替换的操作是通过使用 :s(substitute)命令来实现的。这里是一些基本的替换命令" class="reference-link" href="#"˃一:在 Vim 中进行文本替换的操作是通过使用 :s(substitute)命令来实现的。这里是一些...

Linux安装safe-rm防止误删文件或目录

在Linux系统中安装safe-rm工具可以有效地防止误删除重要文件或目录。以下是安装safe-rm的步骤: 1、下载safe-rm:使用wget命令从官方网站下载safe-rm的压缩包。例如,下载0.12版本的命令为: wget https://launchpad.net/safe-rm/tr...

Linux操作系统之Docker、nginx安装

Docker安装 不同操作系统的服务器安装大同小异,这里以 CentOS 为例。 第一步:移除旧版本为确保本次安装是全新安装,需要先移除已经安装的旧版本。 sudo yum remove -y docker \ docker-client \...