什么是df命令

df是Linux系统里一个特别基础又特别常用的命令,全称是disk free,意思就是查看磁盘的空闲空间。对于运维人员或者经常和服务器打交道的人来说,df命令几乎是每天都要敲几遍的,因为它能最直观地反映出磁盘的使用情况。

命令linux_linux df命令_命令的英文

很多刚接触Linux的朋友第一次用df的时候linux df命令,可能就直接敲一个df回车,结果看到一堆看不懂的列名和数字。其实df命令输出的信息很好理解,每一行代表一个文件系统,第一列是文件系统的设备名,后面依次是总大小、已用、可用、使用百分比和挂载点。搞清楚这几列的意思之后,你就能一眼看出哪个分区快满了,哪个还有很多余量。

不过df命令不只是简单显示这些信息,它还带了很多参数,能让你看到不同维度的磁盘情况。比如加个-h参数,它就会把数字转换成人类易读的单位,变成G、M这样的格式,而不是一堆字节数。这个参数几乎成了标配,很少有人会去记那一大串字节数字。

df命令怎么看磁盘空间够不够

命令linux_linux df命令_命令的英文

很多人用df就是想快速判断磁盘是不是满了,这个其实特别简单。你只需要执行df -h,然后看看各个挂载点的使用百分比就行。如果某个分区的Use%接近100%,那就说明空间快用完了,需要清理或者扩容了。

但是光看百分比有时候会被骗。比如一个100G的分区用了90%,看起来只剩10G,感觉还够用。可如果是根分区或者存放数据库的分区,10G可能转眼就没了。所以判断磁盘空间够不够,要结合实际业务来评估。像日志分区、数据库数据目录这些增长快的地方,最好预留20%以上的空间,不然说满就满。

还有一种情况是df显示剩余空间很多,但系统却报磁盘满了。这通常是因为文件被删除了但进程还在占用,导致空间没有真正释放。这时候可以用lsof命令查一下是哪个进程占着文件,然后重启或者kill掉进程才行。df不会骗你,但它显示的是文件系统层面的空间,有些隐藏的问题需要靠经验去发现。

命令linux_命令的英文_linux df命令

df命令和du命令有什么区别

df和du都是查看磁盘的命令linux df命令,但它们的统计方式完全不一样,很多人搞混了。df是看文件系统层面的空间,也就是从分区整体来看还剩多少容量。而du是看目录或文件层面的空间,统计的是目录下所有文件占用的实际磁盘块数。

举个简单的例子,你想知道/home目录占了多少空间,用du -sh /home就能看到。但如果用df看,只能看到/home所在分区的总使用情况,没法单独知道这个目录的占用量。反过来,df能看到分区被用掉了多少,而du把某个目录下的文件加起来,可能比分区实际使用量少中标麒麟linux,因为文件系统本身有元数据开销,还有一些隐藏文件。

linux df命令_命令的英文_命令linux

实际工作中,这两个命令经常配合使用。先用df -h扫一眼整体磁盘情况,发现某个分区使用率异常高,再用du逐层往下查,定位到大文件或者大目录。比如可以先用du -sh /*看看根目录下哪些目录占空间大,然后一层层进去排查。掌握了这两个命令的配合,磁盘问题基本都能快速定位。

df命令常见问题怎么解决

用df命令的时候,偶尔会遇到输出卡住不动的情况,尤其是挂载了网络文件系统或者某些远程存储的时候。这是因为df会去尝试读取所有已挂载的文件系统,如果某个挂载点连不上,它就会一直等下去。解决方法很简单,加上--exclude-type=nfs4或者--exclude-type=cifs这样的参数,跳过那些网络文件系统。

linux df命令_命令的英文_命令linux

还有的时候df显示某个分区使用率是100%,但怎么找都找不到是什么文件占的空间。这种情况很可能是日志文件被删除了但进程没释放,或者说有进程在向一个已经被删除的文件写数据。可以用lsof | grep deleted来查找那些已经被删除但还在被占用的文件,找到对应的进程后重启或者重载一下就行。

另外df命令本身不会影响系统性能,但如果磁盘IO特别高的时候,执行df可能会稍微慢一点。不过这都不叫事,真正要注意的是,df显示的可用空间并不等于你真正能用的空间。因为Linux文件系统会预留一部分空间给root用户,通常是5%,这样即使普通用户把磁盘写满了,root还能登录进去做清理。所以如果df显示剩余0%,普通用户写不进去,但root还是能操作的linux服务器系统,这个机制有时候会让人误判。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复