Compute Engine VM无法SSH连接且设备存储空间不足,请求清理空间的解决方法
兄弟,我看你现在连SSH都登不上,还碰到VM存储空间不够的问题,只能靠串口终端访问是吧?别慌,我给你一步步说怎么通过串口终端清理空间,先把紧急问题解决:
一、先定位空间占用情况
首先得搞清楚到底是哪个分区满了,哪些文件在占空间:
先执行磁盘使用情况查询命令,快速定位满额分区:
df -h
这个命令会列出所有挂载点的空间使用情况,重点看使用率100%或接近100%的分区,大概率是根分区/接着精准定位大文件和目录:
先查看根目录下各文件夹的体积:du -sh /*
找到体积最大的几个文件夹后,再深入进去排查,比如发现/var/log占比极高,就执行:du -sh /var/log/*
这样就能找到具体的空间占用大户
二、针对性安全清理空间
根据上面的定位结果,咱们做不影响系统运行的清理操作:
清理日志文件(最常见的空间占用元凶)
日志文件很容易积少成多占满磁盘,注意不要直接删除正在写入的日志文件(会导致服务异常),建议用清空的方式:cat /dev/null > /var/log/syslog
另外可以放心删除过期的压缩日志归档:rm -rf /var/log/*.gz清理临时文件和系统缓存
- 清理系统临时目录的文件,这些都是临时生成的,删除完全不影响:
rm -rf /tmp/*rm -rf /var/tmp/* - 如果你用的是Debian/Ubuntu系统,清理APT软件包缓存:
apt clean(彻底清理所有下载的包文件)
或者apt autoclean(只清理过期的包文件) - 如果你用的是RHEL/CentOS系统,清理YUM/DNF缓存:
yum clean all或者dnf clean all
- 清理系统临时目录的文件,这些都是临时生成的,删除完全不影响:
删除无用的大体积文件
比如核心转储文件(core dump),这类文件体积大且一般无留存必要,先查找:find / -name "core" -type f -size +100M
确认是无用的转储文件后,执行删除(替换为实际找到的文件路径):rm -f /path/to/core清理未使用的软件包
- Debian/Ubuntu系统:
apt autoremove --purge
这个命令会删除不再需要的依赖包和残留配置文件,能释放不少空间 - RHEL/CentOS系统:
yum autoremove或者dnf autoremove
- Debian/Ubuntu系统:
三、确认空间释放并恢复SSH
清理完成后,再执行df -h确认空间已经释放,这时候你可以尝试重新连接SSH,应该就能正常登录了。如果之后还是频繁出现空间不足的情况,建议考虑给VM扩容磁盘。
备注:内容来源于stack exchange,提问作者DevAccess KoiZai

