我创建了一个新的虚拟机,但是创建后我就开始面临空间问题。从du
andlsblk
命令中我看到/dev/mapper/centos-root
占用了大量空间。我尝试在 root 上运行 tree 命令来过滤所有占用大量空间的文件。但该命令需要很长时间。
我如何找出到底是什么占用了空间并将其从系统中删除。
这是命令的输出。
[root@hpmaincs mapper]# lsblk --output NAME,KNAME,TYPE,SIZE,MOUNTPOINT
NAME KNAME TYPE SIZE MOUNTPOINT
fd0 fd0 disk 4K
sda sda disk 100G
├─sda1 sda1 part 1G /boot
└─sda2 sda2 part 99G
├─centos-root dm-0 lvm 50G /
├─centos-swap dm-1 lvm 7.9G [SWAP]
└─centos-home dm-2 lvm 41.1G /home
sdb sdb disk 100G
sr0 sr0 rom 1024M
[root@hpmaincs mapper]# df -H
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 54G 54G 21k 100% /
devtmpfs 8.4G 0 8.4G 0% /dev
tmpfs 8.4G 0 8.4G 0% /dev/shm
tmpfs 8.4G 801M 7.6G 10% /run
tmpfs 8.4G 0 8.4G 0% /sys/fs/cgroup
/dev/sda1 1.1G 228M 836M 22% /boot
/dev/mapper/centos-home 45G 38M 45G 1% /home
ytr.itm.com:/Media 34T 26T 8.0T 77% /root/cvmedia
tmpfs 1.7G 0 1.7G 0% /run/user/0
答案1
使用合适的磁盘空间分析器。最简单的分析器,du
可能是默认安装的。你可以像这样使用它:
$ sudo du --one-file-system --human-readable --max-depth=1 /
4.5G /usr
38M /etc
46G /var
8.5K /backup
188K /mnt
118M /opt
50G /
在我的例子中,我们看到/var
很大,所以让我们去那里(这次使用简短的选项):
$ sudo du -xhd1 /var
1.7G /var/lib
22K /var/net-snmp
8.5K /var/local
236M /var/log
8.5K /var/empty
31K /var/db
75K /var/syslog
8.5K /var/games
6.6M /var/state
44G /var/cache
313K /var/smbversion
212K /var/tmp
332K /var/spool
22K /var/named
8.5K /var/opt
46G /var
大量缓存的东西!
一个更加用户友好的解决方案是ncdu
,交互式版本du
:
$ ncdu -x /
ncdu 2.3 ~ Use the arrow keys to navigate, press ? for help
--- / --------------------------------------------------------------------------
45.1 GiB [###########] /var
4.5 GiB [# ] /usr
117.1 MiB [ ] /opt
37.9 MiB [ ] /etc
187.5 KiB [ ] /mnt
e 8.5 KiB [ ] /backup
4.5 KiB [ ] dead.letter
@ 512.0 B [ ] sbin
@ 512.0 B [ ] lib64
@ 512.0 B [ ] lib
@ 512.0 B [ ] bin
> 0.0 B [ ] /tmp
> 0.0 B [ ] /tank
> 0.0 B [ ] /sys
> 0.0 B [ ] /srv
> 0.0 B [ ] /run
> 0.0 B [ ] /root
> 0.0 B [ ] /proc
> 0.0 B [ ] /keys
> 0.0 B [ ] /home
> 0.0 B [ ] /hd2
*Total disk usage: 49.7 GiB Apparent size: 53.2 GiB Items: 344,334
您可以以交互方式深入研究,并获得相对大小指示器(尽管在我的示例中很无聊)。
ncdu
在大多数发行版的软件包源中都可以找到,但是由于你的分区已满,所以你将无法安装它。
在两者上使用-x
/--one-file-system
都很重要,因为您只关心特定的文件系统,而不关心其他任何事情。如果您不使用它,它将开始扫描安装在 上的多 TB 网络资源/root/cvmedia
!