Linux磁盘满了怎么救_磁盘应急处理

1次阅读

Linux磁盘满了怎么救_磁盘应急处理

磁盘满了得立刻动手,不能等。核心动作就三步:确认哪里满、找到谁占的、快速释放空间。整个过程不需要重启,多数情况5分钟内能缓解。

看哪块盘真满了

先跑这条命令:

df -h

重点看 Use% 这一列,标红或显示 95% 以上的就是问题分区。比如看到 /dev/sda1 挂在 / 上且用了 99%,那根目录就是主战场。注意别被 /tmpfs/dev/shm 干扰——它们是内存虚拟文件系统,不占磁盘。

顺藤摸瓜找大头

进到那个挂载点(比如 cd /),执行:

du -sh /* 2>/dev/NULL | sort -hr

这会列出所有一级目录大小,从大到小排好。常见“嫌疑对象”有:/var(日志、缓存)、/usr(软件包)、/home(用户数据)、/opt(第三方应用)。假设 /var 占了 32G,就再进去:

cd /var && du -sh * 2>/dev/null | sort -hr

继续往下钻,直到定位到具体目录或文件,比如 /var/log/journal/var/lib/docker

删得准,别误伤

找到目标后,分情况处理:

  • 日志类(如 /var/log/syslog/var/log/journal):用 truncate -s 0 文件名 清空内容,保留文件和权限,避免服务报错
  • 已删除但进程还在写(lsof | grep deleted 能查到):记下 PID,重启对应服务或执行 kill -HUP PID 让它重新打开日志
  • 临时文件(/tmp 下):确认无活跃进程依赖后,直接 rm -rf /tmp/*
  • 旧内核(/boot 满时):用 rpm -q kernel 查已装内核,留最新两个,其余 yum remove kernel-xxx

防复发的小动作

救急完别收工。马上做两件事:

  • 给日志加轮转:logrotate 配置好 /etc/logrotate.d/ 下对应规则,防止再次撑爆
  • 检查定时任务:用 crontab -lsystemctl list-timers 看有没有脚本反复生成大文件
text=ZqhQzanResources