清理云主机的磁盘文件,核心思路和操作与物理服务器或本地虚拟机类似,但由于云主机通常有系统盘和数据盘的区分,且云平台通常有快照/镜像功能,所以在操作时需要多加小心,避免误删系统关键文件或导致无法恢复。
以下是针对Linux和Windows云主机通用的安全清理步骤,以及一些云平台特有的注意事项。
1、不要手动删除/ 根目录下不认识的文件夹(如lib、bin、etc、boot 等)。
2、务必备份:在清理前,最好先对云主机创建快照(Snapshot)或镜像(Image),如果误删除,可以通过云控制台快速恢复。
3、明确分盘:云主机通常有“系统盘”(通常为40-50GB,主要存操作系统和基本软件)和“数据盘”(存储数据库、网站文件、日志等)。系统盘空间不足是用户最常见的困扰。
以下命令基于 CentOS/Ubuntu 系统,大部分通用。
查看磁盘整体使用情况 df -h 找到占用空间最大的目录(通常从 / 根目录开始) du -sh /* 2>/dev/null | sort -rh | head -20 如果看到 /var 很大,可以继续深入 du -sh /var/* 2>/dev/null | sort -rh | head -10
系统日志(/var/log/)是磁盘空间泄露的主要原因之一。
查看最大的日志文件 ls -lhS /var/log/ 【安全清理】使用 logrotate 强制轮转(推荐) sudo logrotate -f /etc/logrotate.conf 【激进清理】只保留最近几天的日志(若空间告急) sudo journalctl --vacuum-time=3d # 清理 systemd 日志,只保留最近3天 【手动清理】安全的清空特定日志(不删除文件,只清空内容) sudo truncate -s 0 /var/log/messages sudo truncate -s 0 /var/log/syslog sudo truncate -s 0 /var/log/secure sudo truncate -s 0 /var/log/maillog sudo truncate -s 0 /var/log/nginx/access.log # 如果有 nginx
使用apt 或yum 更新系统后,会产生大量缓存包。
Debian/Ubuntu 系统 sudo apt clean # 删除所有缓存的包文件(/var/cache/apt/archives/) sudo apt autoclean # 删除已过时的缓存包 sudo apt autoremove # 删除系统不再需要的依赖包(内核或库) CentOS/RHEL 系统 sudo yum clean all sudo dnf clean all # 如果使用 dnf
安全清理 /tmp 目录(重启后会自动清,但可以主动清) sudo rm -rf /tmp/* 清理系统临时目录(/var/tmp) sudo rm -rf /var/tmp/* 使用 tmpreaper / tmpwatch 工具自动清理(需安装) sudo tmpreaper --all --protect 'root' 30d /tmp
5. 清理 Docker 相关(如果安装了 Docker)
Docker 是云主机磁盘占用的另一个大户。
查看 Docker 占用的磁盘 docker system df 一键清理:删除所有停止的容器、未使用的网络、悬空镜像和构建缓存 docker system prune -a --volumes 安全说明:-a 会删除未被使用的镜像(可能导致下次拉取较慢),--volumes 会删除未被容器使用的数据卷(重要数据慎用)
查找大于 100MB 的文件(通常是日志、core dump 或数据库备份)
sudo find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null
查找超过 1GB 的目录
sudo du -h --max-depth=1 / 2>/dev/null | grep '[0-9]\+G'- 打开“此电脑” → 右键系统盘(如 C:)→“属性” →“磁盘清理”。
- 点击“清理系统文件”(需要管理员权限)。
- 选择以下可安全删除的选项:
Windows 更新清理(通常能释放 2-10GB)
临时文件
回收站
传递优化文件
系统还原点(如果不需要回滚,可以全部删除)
使用 PowerShell 或 CMD(以管理员身份运行) cleanmgr /sageset:1 # 配置清理选项 cleanmgr /sagerun:1 # 执行清理 或者手动删除 %TEMP% # 用户临时文件夹 C:\Windows\Temp # 系统临时文件夹(可以清空)
3. 清理 Windows.old 文件夹
- 如果系统进行了大版本更新(如 Win10→Win11),C:\Windows.old 可能占用 10-20GB。
方法:设置 → 系统 → 存储 → 临时文件 → 勾选“以前的 Windows 安装” → 删除。
C:\hiberfil.sys 文件大小通常与内存等同(如 16GB)。
方法:以管理员身份运行 CMD,输入powercfg -h off,此操作会关闭休眠功能,释放磁盘空间(虚拟机通常不需要休眠)。
不是你本机文件多,而是云平台没帮你释放空间。
1、回收站/快照残留:
- 某些云平台(如阿里云 ECS、腾讯云 CVM)在你删除文件后,文件可能还在回收站或快照里占用空间,请到云控制台-存储-云盘-回收站检查并彻底清空。
2、镜像/快照占用:
- 如果你创建了自定义镜像,或者开启了自动快照,那些历史快照会占用云盘的总容量,进入控制台的“快照列表”,删除不再需要的旧快照。
3、云监控/日志 Agent:
- 云平台通常会在你的云主机内安装代理程序(如AliyunService、TecentStor 等),它们的日志可能存放在/usr/local/cloud/ 或/var/log/cloud-init*.log 下,在确保云主机运行正常的前提下,可以清空这些日志。
日常维护:设置 crontab 任务,每周执行一次apt auto cleanup +journalctl vacuum。
紧急处理:先用du -sh / 找到最大目录,然后用du -sh /最大目录/ 深入排查。
终极方案:如果系统盘(通常较小)空间总是告急,可以考虑更换云盘(如将 40GB 系统盘在线扩容到 80GB),或者将应用数据迁移到数据盘。
数据盘清理:如果是数据盘满了,需要具体查看数据库日志(MySQL Binlog、PostgreSQL WAL 日志)或 Web 应用日志,按需清理。
建议从包管理器缓存 和日志文件 开始清理,这两步通常最安全、见效最快,清理前,一定要确保有云平台快照作为后路。
文章摘自:https://idc.huochengrm.cn/zj/26008.html
评论