Orp*_*ans 4 mysql database disk-space-utilization ls du
我的一台客户端服务器的磁盘空间不足时遇到问题。
的命令的输出ls -lah
在/var/lib/mysql
所示:
drwx------ 2 mysql mysql 16K Dec 30 2015 database_xyz
Run Code Online (Sandbox Code Playgroud)
但是当我使用命令检查同一目录中的文件大小时du -sh *
,输出显示:
22G database_xyz
Run Code Online (Sandbox Code Playgroud)
为什么这些命令的输出显示两个完全不同的结果?
我的驱动器上只剩下 2.2GB。
root@jon-cust-lifeincity:/var/lib/mysql# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg-root 49G 44G 2.2G 96% /
tmpfs 1007M 0 1007M 0% /lib/init/rw
udev 1002M 108K 1002M 1% /dev
tmpfs 1007M 0 1007M 0% /dev/shm
/dev/sda1 228M 16M 200M 8% /boot
Run Code Online (Sandbox Code Playgroud)
编辑:
原来那database_xyz
实际上是一个目录,而不是一个文件。所以混乱是由我的大脑弥补的。
您似乎对别人告诉您的内容有误解。该ls -lah
命令列出当前目录的内容。在这种特殊情况下, /var/lib/mysql
. 除其他事项外,你被告知这一点
drwx------ 2 mysql mysql 16K Dec 30 2015 database_xyz
Run Code Online (Sandbox Code Playgroud)
你误解了这句话的意思。
您可以将目录视为包含目录条目列表的平面文件。(简单地说)目录条目是文件名和指向该文件在磁盘上的位置的指针。此信息占用磁盘空间。
什么
drwx------ 2 mysql mysql 16K Dec 30 2015 database_xyz
Run Code Online (Sandbox Code Playgroud)
告诉您的是,在/var/lib/mysql
名为database.xyz
. 该条目用于d
指示它是一个目录的文件类型,其中目录“文件”的大小为 16K。