一、紧急处理:快速释放磁盘空间
当收到磁盘告警时,建议按以下优先级操作:
- 清理临时文件:
清理系统临时文件 sudo rm -rf /tmp/ 清理旧内核包(CentOS/RHEL) sudo package-cleanup --oldkernels --count=1
- 日志文件处理:
清空大日志文件(保留文件句柄) sudo truncate -s 0 /var/log/syslog 按时间清理日志 sudo journalctl --vacuum-time=7d
二、深度清理:定位大文件与无用数据
使用专业工具分析磁盘使用情况:
- 可视化分析工具:
安装ncdu工具 sudo apt install ncdu Debian/Ubuntu sudo yum install ncdu CentOS/RHEL 扫描目录 ncdu /
- 查找大文件(>100MB):
find / -type f -size +100M -exec ls -lh {} ;
三、长期解决方案:系统化空间管理
1. 日志轮转配置
修改/etc/logrotate.conf
示例:
/var/log/nginx/.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
service nginx reload >/dev/null
endscript
}
2. 自动化清理脚本
!/bin/bash
自动清理30天前的日志
find /var/log -name ".log" -type f -mtime +30 -delete
清理Docker无用数据
docker system prune -af --volumes
四、扩容方案选择
方案 | 适用场景 | 操作复杂度 |
---|---|---|
LVM在线扩容 | 物理服务器/云主机 | 中等 |
挂载新磁盘 | 所有环境 | 简单 |
云存储服务 | 云环境 | 简单 |
五、预防措施:建立监控体系
- Prometheus监控配置示例:
- alert: DiskSpaceCritical expr: 100 - (node_filesystem_avail_bytes{mountpoint="/"} 100 / node_filesystem_size_bytes{mountpoint="/"}) > 90 for: 10m labels: severity: critical annotations: summary: "Disk space critical on {{ $labels.instance }}"
- 定期维护计划:
建议每周执行:数据库维护、缓存清理、备份验证
评论