Linux 根分区爆满排查与解决
一、排查
有一台 Ubuntu 服务器是我装的系统,同事安装 cuda 的时候 /tmp 空间不足。使用 df -h
查看磁盘使用情况:
根分区已经100% 占满,导致无法正常安装软件。
排查 1:查看哪些目录占用空间最多?
查看根目录下各个子目录的大小:
sudo du -h --max-depth=1 / | sort -hr
结果如下:
/root
目录异常地占用了 21G 空间,继续排查 。
排查 2: 深入分析 /root
目录
查看 /root
子目录占用情况:
sudo du -h --max-depth=1 /root | sort -hr
结果如下:
发现了罪魁祸首:
Anaconda3
安装目录占用了 16G.cache
缓存目录占用了 4.4G
二、解决
解决 1:移动 anaconda3
目录释放空间
/home
和/www
分区空间很多,可以将 Anaconda 安装目录迁移到其中去,然后通过符号链接来兼容原路径。
执行命令:
sudo mv /root/anaconda3 /home/anaconda3
sudo ln -s /home/anaconda3 /root/anaconda3
迁移后用 df -h
验证根目录空间是否释放。
空间已经释放了。
解决 2:清理或移动 .cache
缓存目录
查看 .cache
目录下内容:
ll /root/.cache
发现包含:
pip/
conda/
paddle/
这些都是常见的缓存目录,大多数可以直接删除:
sudo rm -rf /root/.cache/pip
sudo rm -rf /root/.cache/conda
sudo rm -rf /root/.cache/paddle
或者,将整个 .cache
移动到 /home
并软链接:
sudo mv /root/.cache /home/root_cache
sudo ln -s /home/root_cache /root/.cache
空间释放成功。
Conda 命令失效问题:
虽然保留了 /root/anaconda3
的路径(通过软链接),但执行:
conda --version
提示:
conda: command not found
原因:
符号链接本身不会自动让系统知道 conda
的路径,必须配置环境变量。如果你本来就已配置了环境变量,那就没影响。
解决 3:配置环境变量恢复 Conda
执行命令:
# 系统级
sudo vim /etc/profile
# 用户级
sudo vim ~/.bashrc
添加:
export PATH="/root/anaconda3/bin:$PATH"
保存后执行:
# 系统级
source/etc/profile
# 用户级
source ~/.bashrc
验证是否恢复,如果打开了多个该服务器的客户端,要么执行上面命令,要么重新连接一下:
大功告成。