Linux文件系统df、du、fsck命令讲解
Linux环境下几种常用的文件系统有ext3
、ext4
、xfs
,centos7.0开始默认文件系统是xfs,centos6是ext4,centos5是ext3。
-
ext3:
ext3和ext4的最大区别在于,ext3在fsck时需要耗费大量时间(文件越多,时间越长),而ext4在fsck时用的时间会少非常多。 -
ext4:
ext4是第四代扩展文件系统(英语:Fourth EXtended filesystem,缩写为ext4)是linux系统下的日志文件系统,是ext3文件系统的后继版本
ext4的文件系统容量达到1EB,而文件容量则达到16TB,这是一个非常大的数字了。对一般的台式机和服务器而言,这可能并不重要,但对于大型磁盘阵列的用户而言,这就非常重要了。
ext3目前只支持32000个子目录,而ext4取消了这一限制,理论上支持无限数量的子目录。 -
xfs:
xfs是一种非常优秀的日志文件系统,它是SGI公司设计的。xfs被称为业界最先进的、最具可升级性的文件系统技术。
xfs是一个64位文件系统,最大支持8EB减1字节的单个文件系统,实际部署时取决于宿主操作系统的最大块限制。对于一个32位Linux系统,文件和文件系统的大小会被限制在16TB。
xfs在很多方面确实做的比ext4好,ext4受限制于磁盘结构和兼容问题,可扩展性和scalability确实不如xfs,另外xfs经过很多年发展,各种锁的细化做的也比较好!
Linux文件系统是Linux系统相当重要的一部分,首先我们来了解一下Linux的文件系统目录结构构成。
/usr/bin
、/bin
:存放所有用户可以执行的命令user/sbin
、/sbin
:存放只有root用户可以执行的命令/home
:用户缺省的家目录或者又可以称作宿主目录/proc
:虚拟文件系统/dev
:存放社保文件/lib
:存放系统程序运行所需的共享库/tmp
:存放临时文件/etc
:系统配置文件/var
:包含经常发生变动的文件、比如日志文件、计划任务等/usr
:存放所有命令、库、手册等/mnt
:临时文件系统的安装点/boot
:内核文件及程序
一、查看文件系统硬盘使用情况:df
df 命令,用于查看Linux系统中各文件系统的硬盘使用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等。
df 命令的基本格式为:
$ df [选项] [目录或文件名]
df命令常用选项及作用如下:
选项 | 作用 |
---|---|
-a | 显示所有文件系统信息,包括系统特有的 /proc、/sysfs 等文件系统; |
-m | 以 MB 为单位显示容量; |
-k | 以 KB 为单位显示容量,默认以 KB 为单位; |
-h | 使用我们习惯的 KB、MB 或 GB 等单位自行显示容量; |
-T | 显示该分区的文件系统名称; |
-i | 不用硬盘容量显示,而是以含有 inode 的数量来显示。 |
比如执行命令:
$ df -h
执行命令之后,打印出来的结果个列信息含义是:
Filesystem
:表示该文件系统位于哪个分区,因此该列显示的是设备名称;Size
:此列表示文件系统的总大小;Used
:表示用掉的硬盘空间大小;Avail
:表示剩余的硬盘空间大小;Use%
:硬盘空间使用率。如果使用率高达 90% 以上,就需要额外注意,因为容量不足,会严重影响系统的正常运行;Mounted on
:文件系统的挂载点,也就是硬盘挂载的目录位置
我们再执行以下这条命令:
$ df -h /etc
这条命令,df 命令后添加了目录名,在这种情况下,df 命令会自动分析该目录所在的分区,并将所在分区的有关信息显示出来。由此,我们就可以知道,该目录下还可以使用多少容量。
二、统计目录或文件所占磁盘空间大小:du
du是统计目录或文件所占磁盘空间大小的命令。du 命令的格式如下:
$du [选项] [目录或文件名]
选项:
-a
:显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量-h
:使用习惯单位显示磁盘占用量,如 KB、MB 或 GB 等;-s
:统计总磁盘占用量,而不列出子目录和子文件的磁盘占用量
执行:$du -sh /etc
三、检测和修复文件系统:fsck
计算机难免会由于某些系统因素或人为误操作(突然断电)出现系统异常,这种情况下非常容易造成文件系统的崩溃,严重时甚至会造成硬件损坏。这也是我们一直在强调的“服务器一定要先关闭服务再进行重启”的原因所在。
那么,如果真出现了文件系统损坏的情况,有办法修复吗?可以的,对于一些小问题,使用 fsck 命令就可以很好地解决。
fsck 命令用于检查文件系统并尝试修复出现的错误。该命令的基本格式如下:
$ fsck [选项] 分区设备文件名
选项 | 功能 |
---|---|
-a | 自动修复文件系统,没有任何提示信息。 |
-r | 采取互动的修复模式,在修改文件前会进行询问,让用户得以确认并决定处理方式。 |
-A(大写) | 按照 /etc/fstab 配置文件的内容,检查文件内罗列的全部文件系统。 |
-t | 文件系统类型 指定要检查的文件系统类型。 |
-C(大写) | 显示检查分区的进度条。 |
-f | 强制检测,一般 fsck 命令如果没有发现分区有问题,则是不会检测的。如果强制检测,那么不管是否发现问题,都会检测。 |
-y | 自动修复,和 -a 作用一致,不过有些文件系统只支持 -y。 |
此命令通常只有身为 root 用户且文件系统出现问题时才会使用,否则,在正常状况下使用 fsck 命令,很可能损坏系统。另外,如果你怀疑已经格式化成功的硬盘有问题,也可以使用此命令来进行检查。
使用 fsck 检查并修复文件系统是存在风险的,特别是当硬盘错误非常严重的时候,因此,当一个受损文件系统中包含了非常有价值的数据时,务必首先进行备份!
需要注意的是,在使用 fsck 命令修改某文件系统时,这个文件系统对应的磁盘分区一定要处于卸载状态,磁盘分区在挂载状态下进行修复是非常不安全的,数据可能会遭到破坏,也有可能会损坏磁盘。