- 首页 >
- 问答 >
-
云计算 >
- Linux Minimal如何管理磁盘空间
Linux Minimal如何管理磁盘空间
小樊
42
2025-11-22 13:49:33
Linux Minimal 磁盘空间管理
一 快速定位占用
- 查看整体使用:使用 df -h 检查各挂载点使用率,优先关注 /、/var、/home。
- 定位大文件/目录:使用 du -xh --max-depth=1 / 逐层排查;或用 ncdu 交互式分析(更直观)。
- 检查日志体量:用 journalctl --disk-usage 查看 systemd-journald 日志占用;按需清理。
- 容器场景:若使用 Docker,检查 /var/lib/docker 是否异常膨胀。
二 安全清理常见增长点
- 包管理器缓存
- RHEL/CentOS:yum clean all;必要时清理 /var/cache/yum。
- Debian/Ubuntu:apt-get clean、apt-get autoremove --purge。
- 旧日志与系统日志
- 轮转与清理:logrotate /etc/logrotate.conf;按时间截断或删除旧日志,例如:
- 查找并截断大日志:find /var/log -type f -name “*.log” -size +50M -mtime +7 -exec truncate -s 0 {} ;
- 删除 30 天前日志:find /var/log -type f -name “*.log” -mtime +30 -exec rm -f {} ;
- systemd 日志:journalctl --vacuum-time=7d(保留最近 7 天)。
- 临时文件
- 清理 /tmp:如 rm -rf /tmp/*(确保无关键会话在使用)。
- 定时清理工具:tmpwatch(RHEL/CentOS)或 tmpreaper(Debian/Ubuntu)。
- 包管理残留
- 删除孤立包:如 package-cleanup --quiet --leaves --exclude-bin | xargs yum remove -y。
- 删除旧内核(仅保留最近 2 个):package-cleanup --oldkernels --count=2。
- Docker 数据迁移(如 /var/lib/docker 过大)
- 停止服务:systemctl stop docker
- 迁移数据:rsync -avzP /var/lib/docker/ /data/docker/lib/
- 配置新目录并重启:编辑 /lib/systemd/system/docker.service 的 ExecStart 加入 –graph=/data/docker/lib/docker,然后 systemctl daemon-reload && systemctl restart docker && systemctl enable docker。
三 扩展与挂载新磁盘
- 识别磁盘与分区:lsblk、fdisk -l;大于 2TB 的磁盘建议用 parted 处理。
- 分区与格式化:
- 分区:fdisk /dev/sdX(新建分区),或 parted 处理 GPT/大磁盘。
- 格式化:mkfs.ext4 /dev/sdXY。
- 挂载与持久化:
- 临时挂载:mkdir -p /mnt/new_part && mount /dev/sdXY /mnt/new_part
- 开机自动挂载:在 /etc/fstab 添加如
- /dev/sdXY /mnt/new_part ext4 defaults 0 0
- LVM 在线扩容(如已使用 LVM)
- 扩展逻辑卷:lvextend -L +10G /dev/vg_data/lv_data
- 扩展文件系统:resize2fs /dev/vg_data/lv_data(ext4)
四 自动化与维护建议
- 建立例行清理
- 定时任务示例:
- 清理 YUM 缓存(每日):0 3 * * * root yum clean all
- 清理 systemd 日志(每周):0 2 * * 0 root journalctl --vacuum-time=7d
- 清理临时文件(每日):0 4 * * * root tmpwatch 7d /tmp
- 监控与告警
- 结合 df、du、ncdu 建立周报或阈值告警,提前发现异常增长。
- 变更前必做
- 重要数据完整备份;分区/扩容操作务必谨慎,避免误删与数据损坏。