Linux的日志保留多久?如何更改?
发布日期:
作者: 西木
评论数:暂无评论
文件的日志保留时间取决于系统的日志轮换设置。在Linux系统中,日志的保留时间取决于系统日志管理工具的配置,主要包括logrotate
和journald
两种。
1. logrotate
配置文件通常位于 /etc/logrotate.conf
,查看该文件内容如下:
sudo vi /etc/logrotate.conf
# see "man logrotate" for details
# global options do not affect preceding include directives
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
#dateext
# uncomment this if you want your log files compressed
#compress
# packages drop log rotation information into this directory
include /etc/logrotate.d
# system-specific logs may also be configured here.
如果你想具体修改某个服务或应用的日志保留时间,可能还需要检查该服务的 logrotate
配置文件,通常位于 /etc/logrotate.d/
目录下。
例如 auth.log
日志保留时间可以通过以下步骤来查看或修改
1. 打开 /etc/logrotate.d/
目录下的配置文件,看看是否有与 auth.log
相关的配置。常见的文件名可能是 rsyslog
或 auth
。
2. 如果是rsyslog
,运行命令:
sudo vi /etc/logrotate.d/rsyslog
查找类似以下的设置:
/var/log/auth.log {
rotate 7
daily
missingok
notifempty
compress
delaycompress
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
这个配置 daily
表示 auth.log
每天生成一个新文件。rotate 7
指的是保留 7 个轮换文件。也就是系统会保留最近7天的日志文件。
如果将 daily
换成 weekly
,表示每周生成一个新文件。rotate 7
指的是保留 7 个轮换文件。也就是系统会保留最近7周的日志文件。
如果你想更改日志保留的天数,你可以修改 logrotate
的配置文件,调整 rotate
参数的值,将 daily
改成weekly
、monthly
或yearly
等。
2. journald(systemd 管理的日志)
journald
负责管理systemd
生成的日志,通常是journalctl
查看。
日志保留时间配置
journald
配置文件路径:
/etc/systemd/journald.conf
- 关键参数:
bash复制编辑# 设置最大日志大小
SystemMaxUse=500M
# 设置日志保留时间
MaxRetentionSec=30day
- 默认情况下,
journald
可能无限期保留日志,直到磁盘空间达到SystemMaxUse
配置。
更改 journald
日志保留时间
- 编辑配置文件:
sudo vi /etc/systemd/journald.conf
- 在
[Journal]
部分添加或修改:
bash复制编辑[Journal]
# 保留 30 天的日志
MaxRetentionSec=30day
# 或限制日志占用最大空间
SystemMaxUse=1G
- 重新加载
journald
以应用更改:
sudo systemctl restart systemd-journald
手动清理日志
1. 清理 journald
日志
bash复制编辑# 删除 7 天前的日志
sudo journalctl --vacuum-time=7d
# 限制日志大小为 500MB
sudo journalctl --vacuum-size=500M
2. 清理 logrotate
日志
- 强制手动运行
logrotate
:
sudo logrotate -f /etc/logrotate.conf
检查当前日志大小
查看 journald
日志大小
journalctl --disk-usage
查看 logrotate
管理的日志
du -sh /var/log/*