使用 ls
命令(基础查看)
适用场景:快速查看单个日志文件的大小
命令示例:
ls -lh /var/log/syslog
输出示例:
-rw-r----- 1 syslog adm 12M Jun 10 09:25 /var/log/syslog
- 参数解析:
-l
:显示详细信息
-h
:以人类可读格式(KB/MB/GB)显示大小 - 路径说明:
常见日志路径:/var/log/
(系统日志)、/var/log/nginx/
(Nginx日志)、/var/log/mysql/
(MySQL日志)
使用 du
命令(精确统计)
适用场景:查看文件或目录的实际磁盘占用
命令示例:
du -sh /var/log/nginx/*.log
输出示例:
24M /var/log/nginx/access.log 8.0K /var/log/nginx/error.log
- 参数解析:
-s
:仅显示总大小(省略子目录详情)
-h
:自动转换单位(KB/MB/GB) - 高级用法:
统计整个日志目录大小:du -sh /var/log/
使用 find
命令(批量筛选)
适用场景:查找特定目录下超过指定大小的日志文件
命令示例:
find /var/log -name "*.log" -size +10M -exec ls -lh {} \;
输出示例:
-rw-r--r-- 1 root root 15M Jun 10 08:30 /var/log/kern.log
- 参数解析:
-name "*.log"
:筛选.log后缀文件
-size +10M
:查找大于10MB的文件
-exec ls -lh {} \;
:对结果执行ls -lh
命令
使用 ncdu
工具(交互式分析)
适用场景:可视化分析日志目录的磁盘占用
安装与使用:
sudo apt install ncdu # Debian/Ubuntu sudo yum install ncdu # CentOS/RHEL ncdu /var/log
操作说明:
- 进入界面后按方向键浏览目录
- 按
d
删除文件(需谨慎) - 按
q
退出工具
优势:直观显示目录大小排序,适合定位大文件。
日志轮替机制(Logrotate)检查
适用场景:预防日志膨胀的长期管理
Linux默认通过logrotate
定期压缩/清理日志:
- 查看配置:
cat /etc/logrotate.conf ls /etc/logrotate.d/ # 应用-specific配置
- 手动触发轮替:
logrotate -f /etc/logrotate.d/nginx
关键作用:自动分割、压缩旧日志,避免单个文件过大。
最佳实践建议
- 定期监控:
使用cron
定时任务运行du -sh /var/log/* > /tmp/log_size.txt
记录大小变化。 - 清理策略:
- 保留必要日志:
find /var/log -type f -name "*.log" -mtime +30 -delete
(删除30天前日志) - 避免直接
rm
:优先用truncate -s 0 file.log
清空文件(确保服务支持)。
- 保留必要日志:
- 磁盘告警:
配置df -h
监控脚本,当磁盘使用率>90%时发送警报(通过mail
或telegram-bot
)。
方法 | 命令示例 | 适用场景 |
---|---|---|
单文件快速查看 | ls -lh /path/to/log |
检查特定日志文件大小 |
精确磁盘统计 | du -sh /var/log/*.log |
统计多个日志的实际占用 |
批量筛选大文件 | find /var/log -size +100M |
定位占用异常的日志 |
交互式分析 | ncdu /var/log |
可视化分析目录结构 |
重要提示:操作日志前备份数据,生产环境避免直接删除——优先用
logrotate
或echo "" > file.log
安全清空。
引用说明:
- Linux man pages:
man ls
,man du
,man find
,man logrotate
- GNU Coreutils 文档:https://www.gnu.org/software/coreutils/
- Ncdu 官方指南:https://dev.yorhel.nl/ncdu
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5241.html