我是一个相对基础的用户,使用适用于 Windows 的 Ubuntu 终端。由于我在终端中连接的 VM 磁盘空间不足,导致部署失败:
df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/sda1 30G 30G 0 100% /
/dev/
以常规目录形式存在。然后我看到sda1
一个块设备文件:
ls -l
brw-rw---- 1 root disk 8, 1 Aug 12 01:31 sda1
(看https://superuser.com/questions/1240857/is-dev-sda1-a-directory/1594704#1594704有关块文件的解释)。
我如何调查填充了什么内容并删除不必要的数据?
如果我cd sda1
得到Not a directory
答案1
/dev/sdaN
不是目录,而是对硬盘驱动器第 N 个分区的引用。df -h
显示/dev/sda1
安装在 上/
。如果您想查看设备上占用空间的内容,可以查看该设备的安装点,在本例中为/
。
答案2
我意识到/dev/sda1
它安装在/
- @Pixelated Fish 的回答解释说这是硬盘的第一个分区。所以现在我可以
sudo du -s /
,这表明/var
目录中的某些内容是罪魁祸首。深入研究后,我发现这/var/lib/docker
就是问题所在 - 这让我怀疑自动部署中的旧 docker 镜像没有被删除,这个问题在https://stackoverflow.com/questions/32723111/how-to-remove-old-and-unused-docker-images。
我还执行了sudo -s
和,cd /
然后df -h
显示了确切的罪魁祸首目录(我不确定为什么这样做有效,因为df -h
不是 root 用户时没有)。结果发现日志文件是问题所在。我可以cd
进入文件夹并rm *
清除文件。
以下问题涉及定位占用磁盘空间的方法:
https://unix.stackexchange.com/questions/125429/tracking-down-where-disk-space-has-gone-on-linux