跳到主要内容
← 指南列表

磁盘空间已满时

磁盘满了以后,程序会因无法保存文件而出错,或 DB 停止运行,严重时连 SSH 也难以连接。以下是查找什么占用了空间并安全清理的方法。

1. 查看剩余容量

df -h /

如果 Use% 超过 90%,就需要清理了。

2. 查找哪些占用较大

sudo du -xh / --max-depth=1 2>/dev/null | sort -h | tail -n 15

依次进入最下面显示的大文件夹,重复同样的命令。例如,如果 /var 较大:

sudo du -xh /var --max-depth=1 2>/dev/null | sort -h | tail -n 15

安装 ncdu 后,可以用方向键在文件夹之间切换查看大小,更加方便。(按 q 退出)

sudo apt install -y ncdu
sudo ncdu -x /

3. 可以安全删除的内容

系统日志

sudo journalctl --disk-usage          # 查看当前日志大小
sudo journalctl --vacuum-size=200M    # 只保留最近的 200MB,其余清理

安装文件缓存和不用的软件包

sudo apt clean
sudo apt autoremove -y

如果您使用 Docker

Docker 中不用的镜像和构建缓存不断累积,会占用大量空间。

docker system df       # 查看 Docker 占用的空间
docker system prune    # 清理已停止的容器、不用的镜像、网络、构建缓存

如果像 docker system prune -a --volumes 这样加上选项,可能连存有数据的卷也会被删除。请务必在确认会删除哪些内容后再使用。

pm2 日志

如果您用 pm2 运行机器人或应用,日志文件会不断变大。

pm2 flush                    # 清空迄今为止累积的日志
pm2 install pm2-logrotate    # 今后日志超过一定大小时自动清理

Minecraft 日志和旧备份

Minecraft 服务器文件夹的 logs 中较旧的 .log.gz 文件可以删除。服务器中积存的备份文件,请下载到本地电脑后,从最旧的开始删除。

4. 删除后容量没有变化

正在运行的程序打开的文件,即使删除了,在该程序关闭之前空间也不会释放。重启该程序或重启服务器后即可生效。

sudo lsof +L1 2>/dev/null | head    # 已删除但仍处于打开状态的文件列表

如果没有 lsof,请用 sudo apt install -y lsof 安装。

注意事项

  • 请不要直接删除 /bin、/usr、/etc、/boot、/lib 等系统文件夹中的文件。服务器可能会无法启动。
  • 如果清理后仍然不够,请考虑迁移到磁盘更大的套餐。迁移到新服务器

Windows 服务器

  • 在 设置 → 系统 → 存储 → 临时文件 中选择不需要的项目进行清理。
  • 确认下载文件夹和回收站中是否还留有大文件。

如果问题仍未解决,请在 Discord 提交工单。