✅ 第一步:紧急释放磁盘空间
🔍 1. 找出占用空间的大目录
你已经使用了 du 命令查看 /data 目录的占用情况。可以进一步深入分析,定位具体文件:
sudo du -ah /data | sort -rh | head -n 20
这将列出 /data 中占用空间最大的文件或子目录。
如果需要分析整个系统:
sudo du -sh /* | sort -rh
然后逐层深入,例如:
sudo du -sh /var/* | sort -rh
sudo du -sh /home/* | sort -rh
🧹 2. 清理系统日志和缓存
系统日志和缓存文件容易堆积,清理这些文件可以快速释放空间。
清理日志文件
系统日志通常位于 /var/log 目录,可以查看哪些日志文件过大:
sudo du -sh /var/log/* | sort -rh
清理日志文件:
sudo journalctl --vacuum-time=7d # 清理日志,只保留最近7天的日志
sudo rm -rf /var/log/*.log # 删除过期或不需要的日志文件
sudo rm -rf /var/log/journal/* # 清理二进制日志
清理缓存文件
缓存文件通常位于 /var/cache 和 /tmp:
sudo du -sh /var/cache/* | sort -rh
sudo rm -rf /var/cache/*
sudo rm -rf /tmp/*
🗃️ 3. 删除大文件
查找系统中超过 100MB 的大文件:
sudo find / -type f -size +100M -exec ls -lh {} \; | sort -k 5 -rh | head -n 20
删除不需要的大文件(例如旧的备份文件、临时文件等):
sudo rm -rf /path/to/unnecessary/file
🧹 4. 清理未使用的软件包
清理未使用的包和依赖:
sudo apt autoremove -y
sudo apt clean
🗂️ 5. 清理 Docker 容器和镜像(如果使用 Docker)
Docker 容器和镜像可能占用大量磁盘空间,清理这些文件可以释放空间:
# 删除未使用的容器
sudo docker container prune -f
# 删除未使用的镜像
sudo docker image prune -a -f
# 删除未使用的网络和卷
sudo docker network prune -f
sudo docker volume prune -f
查看 Docker 使用的磁盘空间:
sudo du -sh /var/lib/docker/*
⚙️ 第二步:持久优化磁盘使用
📦 1. 移动非必要文件到其他磁盘或存储
将一些占用空间大的文件(如 /data/hdsp, /data/xdsp)迁移到其他存储设备或挂载额外的磁盘:
sudo mv /data/hdsp /mnt/external_disk/hdsp
sudo mv /data/xdsp /mnt/external_disk/xdsp
如果没有额外磁盘,可以考虑挂载云存储(如 S3、阿里云 OSS)或使用 NFS。
🗃️ 2. 压缩文件
对于不常用但需要保留的文件,可以使用压缩工具减小空间占用:
sudo tar -czvf /data/hdsp.tar.gz /data/hdsp
sudo rm -rf /data/hdsp
📅 3. 定期自动清理
设置 cron 定期清理日志和缓存:
sudo crontab -e
添加以下任务:
# 每周清理日志和缓存文件
0 2 * * 0 journalctl --vacuum-time=7d
0 3 * * 0 rm -rf /var/cache/*
0 4 * * 0 rm -rf /tmp/*
🗂️ 4. 挂载新磁盘或扩容
如果磁盘空间不足是长期问题,可以考虑扩容或挂载新磁盘:
- 挂载新的磁盘到
/mnt/new_disk:sudo fdisk /dev/sdX # 创建分区 sudo mkfs.ext4 /dev/sdX1 sudo mount /dev/sdX1 /mnt/new_disk - 将
/data迁移到新磁盘:sudo mv /data/* /mnt/new_disk/ sudo umount /data sudo mount /dev/sdX1 /data
⚠️ 注意事项
- 备份重要数据:在删除或迁移文件之前,确保数据已备份。
- 避免删除系统关键文件:例如
/etc,/bin,/usr等目录中的文件不要随意删除。