zoukankan      html  css  js  c++  java
  • Linux文件系统df、du、fsck命令讲解

    Linux环境下几种常用的文件系统有ext3ext4xfs,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

    image

    执行命令之后,打印出来的结果个列信息含义是:

    • Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称;
    • Size:此列表示文件系统的总大小;
    • Used:表示用掉的硬盘空间大小;
    • Avail:表示剩余的硬盘空间大小;
    • Use%:硬盘空间使用率。如果使用率高达 90% 以上,就需要额外注意,因为容量不足,会严重影响系统的正常运行;
    • Mounted on:文件系统的挂载点,也就是硬盘挂载的目录位置

    我们再执行以下这条命令:

    $ df -h /etc

    image

    这条命令,df 命令后添加了目录名,在这种情况下,df 命令会自动分析该目录所在的分区,并将所在分区的有关信息显示出来。由此,我们就可以知道,该目录下还可以使用多少容量。

    二、统计目录或文件所占磁盘空间大小:du

    du是统计目录或文件所占磁盘空间大小的命令。du 命令的格式如下:

    $du [选项] [目录或文件名]

    选项:

    • -a:显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
    • -h:使用习惯单位显示磁盘占用量,如 KB、MB 或 GB 等;
    • -s:统计总磁盘占用量,而不列出子目录和子文件的磁盘占用量

    执行:$du -sh /etc

    image

    三、检测和修复文件系统:fsck

    计算机难免会由于某些系统因素或人为误操作(突然断电)出现系统异常,这种情况下非常容易造成文件系统的崩溃,严重时甚至会造成硬件损坏。这也是我们一直在强调的“服务器一定要先关闭服务再进行重启”的原因所在。

    那么,如果真出现了文件系统损坏的情况,有办法修复吗?可以的,对于一些小问题,使用 fsck 命令就可以很好地解决。

    fsck 命令用于检查文件系统并尝试修复出现的错误。该命令的基本格式如下:

    $ fsck [选项] 分区设备文件名

    选项 功能
    -a 自动修复文件系统,没有任何提示信息。
    -r 采取互动的修复模式,在修改文件前会进行询问,让用户得以确认并决定处理方式。
    -A(大写) 按照 /etc/fstab 配置文件的内容,检查文件内罗列的全部文件系统。
    -t 文件系统类型 指定要检查的文件系统类型。
    -C(大写) 显示检查分区的进度条。
    -f 强制检测,一般 fsck 命令如果没有发现分区有问题,则是不会检测的。如果强制检测,那么不管是否发现问题,都会检测。
    -y 自动修复,和 -a 作用一致,不过有些文件系统只支持 -y。

    此命令通常只有身为 root 用户且文件系统出现问题时才会使用,否则,在正常状况下使用 fsck 命令,很可能损坏系统。另外,如果你怀疑已经格式化成功的硬盘有问题,也可以使用此命令来进行检查。

    使用 fsck 检查并修复文件系统是存在风险的,特别是当硬盘错误非常严重的时候,因此,当一个受损文件系统中包含了非常有价值的数据时,务必首先进行备份!

    需要注意的是,在使用 fsck 命令修改某文件系统时,这个文件系统对应的磁盘分区一定要处于卸载状态,磁盘分区在挂载状态下进行修复是非常不安全的,数据可能会遭到破坏,也有可能会损坏磁盘。

    image

  • 相关阅读:
    Tomcat单独部署,控制台乱码解决方法
    mysql授权访问数据库
    Arrays.binarySearch采坑记录及用法
    使用Spring Ehcache二级缓存优化查询性能
    Redis批量删除缓存数据
    Java并发包之Semaphore用法
    Java并发包之CountDownLatch用法
    如何用Xshell导出文件到桌面本地
    Semaphore信号量原理
    老应用链接替换到新链接
  • 原文地址:https://www.cnblogs.com/jiupai-Linux/p/13542368.html
Copyright © 2011-2022 走看看