/var/log 的管理需从结构、轮转、清理和监控四方面入手。首先,其核心目录包括 messages/syslog(系统日志)、auth.log/secure(认证日志)、dmesg(硬件检测)、kern.log(内核日志)、cron(定时任务)、boot.log(启动日志)、httpd/nginx(web 服务日志)及 apt/yum.log(软件包记录),便于问题定位;其次,使用 logrotate 配置日志轮换,如 daily(每日轮换)、rotate(保留天数)、compress(压缩)、notifempty(空文件不轮换)、create(权限设置)、postrotate(重载服务)等参数控制日志大小与保留周期;再次,定期检查磁盘占用,通过 du -sh /var/log/* 查看,结合手动删除、调整 rotate 参数、限制日志类型或使用 tmpwatch 删除旧文件等方式清理日志;最后,日常运维应使用 tail -f 实时查看、journalctl 查 systemd 日志、配置 cron 监控目录大小,并可接入 rsyslog + elk 进行集中分析。

/var/log 是 Linux 系统中存放日志文件的核心目录,正确管理这个目录对系统维护和故障排查非常关键。它不仅影响磁盘空间使用,还关系到日志的可读性和安全性。以下从结构、轮转机制、清理策略几个方面讲讲怎么合理管理 /var/log。

/var/log 目录常见结构与作用
Linux 的日志目录结构相对固定,不同发行版略有差异,但大部分核心文件位置一致:
/var/log/messages 或 /var/log/syslog:记录系统整体日志,包括启动信息、服务状态等。/var/log/auth.log(Debian/Ubuntu)或 /var/log/secure(CentOS/RHEL):记录用户认证相关操作,比如登录尝试、sudo 使用等。/var/log/dmesg:内核环缓冲区日志,主要用于查看系统启动时的硬件检测信息。/var/log/kern.log:仅记录内核产生的日志。/var/log/cron:定时任务执行日志。/var/log/boot.log:系统启动过程的日志。/var/log/httpd/ 或 /var/log/nginx/:Web 服务器日志目录。/var/log/apt/ 或 /var/log/yum.log:软件包管理器操作记录。
这些日志有助于快速定位问题来源,比如看到登录失败频繁可以检查 auth.log,系统崩溃前的状态可以从 messages 或 syslog 中找线索。
日志轮转 logrotate 的基本配置
Linux 使用 logrotate 工具自动轮换日志文件,避免单个日志过大,同时支持压缩、保留周期等功能。

logrotate 的主配置文件通常是
/etc/logrotate.conf
,而各服务有自己的子配置放在
/etc/logrotate.d/
下。
一个典型的日志轮转配置如下(以 nginx 为例):
/var/log/nginx/*.log { daily missingok rotate 14 compress delaycompress notifempty create 0640 www-data adm sharedscripts postrotate [ -f /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid` endscript}
解释一下几个常用参数:
daily:每天轮换一次。rotate 14:保留最近 14 天的日志。compress:旧日志用 gzip 压缩。delaycompress:延迟一天再压缩,方便调试。notifempty:日志为空时不轮换。create:创建新日志文件并设置权限。postrotate…endscript:在轮换后执行的操作,比如通知服务重载日志。
你可以通过手动运行
logrotate -vf /etc/logrotate.d/nginx
来测试配置是否正确。
乾坤圈新媒体矩阵管家
新媒体账号、门店矩阵智能管理系统
17 查看详情
清理旧日志与控制磁盘占用
即使有 logrotate,也有可能因为日志量大或者配置不当导致磁盘被占满。建议定期检查 /var/log 占用情况:
du -sh /var/log/*
清理旧日志的方法有几个:
手动删除不必要的历史日志,例如一些调试日志或已经归档很久的压缩文件。调整 logrotate 配置中的 rotate 数值,减少保留天数。对于某些服务(如 MySQL、Nginx),可以在配置中限制访问日志的大小或关闭不需要的日志类型。使用 tmpwatch 或者 tuned 删除超过一定时间的文件,例如:
tmpwatch 72 /var/log/myapp/
这条命令会删除 /var/log/myapp/ 下 72 小时未修改的文件。
注意:不要随便删系统级日志,特别是涉及安全审计的文件,如 auth.log 或 secure。
日志查看与监控小技巧
除了管理结构和轮转,日常运维中还要会看日志:
使用
tail -f /var/log/syslog
实时查看日志变化。用
journalctl -u nginx.service
查看 systemd 服务日志(适用于使用 systemd 的系统)。设置简单的 cron 定时任务,每天检查一次日志目录大小,及时预警。
如果系统日志很多,也可以考虑接入集中式日志管理工具,比如 rsyslog + ELK,把日志统一收集分析。
基本上就这些。合理组织 /var/log 结构、配置好 logrotate,并定期清理和监控,能有效避免日志引发的问题。
以上就是如何管理Linux系统日志 /var/log目录结构与日志轮转的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/448028.html
微信扫一扫
支付宝扫一扫