IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Linux命令 —— df、du -> 正文阅读

[Python知识库]Linux命令 —— df、du

1. 絮絮叨叨

  • 工作中,经常需要与磁盘打交道
    • 写入大文件前,需要查看磁盘的剩余容量,避免磁盘被写满、影响系统的正常运行
    • 在磁盘存储告警(磁盘写满)时,需要判断哪个目录存在大文件,或者哪个目录可以删除一部分文件,从而释放存储资源
  • 之前都是浑浑噩噩的,要么按照感觉使用linux命令,要么上网搜索
  • 大概知道,主要使用dfdu这两个命令
  • 最近的工作中,频繁地搜索使用方法,让自己想要系统地学习一下dfdu这两个命令

2. df命令

  • 使用df --help,可以查看df命令的帮助信息。
  • 帮助信息是这样介绍df命令的:

    Show information about the file system on which each FILE resides, or all file systems by default.

  • 从上述介绍可知,df命令可以看做是disk FileSystem的缩写,用于展示文件系统的信息
  • 也有博客说(df command in Linux with Examples),dfdisk free的缩写,用于展示文件系统总空间、可用空间等信息

    The df command (short for disk free), is used to display information related to file systems about total space and available space.

  • 自己更喜欢第二种说法,因为自己使用df命令,就是为了查看磁盘空间的使用情况

2.1 基本使用

2.1.1 指定展示的单位(size)

  • 最简单的使用方法:df,会以K为单位,展示已挂载的文件系统的磁盘使用情况:

  • 默认以K为单位,展示文件系统的磁盘使用情况

  • 通过-B指定单位,从而以1024或者1000的进制展示磁盘使用情况

    SIZE is an integer and optional unit (example: 10M is 1010241024). Units are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, … (powers of 1000).

  • 例如,以G(1024进制)为单位展示磁盘使用情况

    df -B G
    # 相同的效果
    df -BG
    
  • 展示效果如下:

2.1.2 使用-h增强可读性

  • 就算将单位指定为G,还是有部分文件系统的磁盘使用情况可读性较弱,如上面截图中/dev/sdg1
  • 我们更希望将磁盘大小,按照合适的单位进行展示,这样展示出来的磁盘使用情况,可读性更强
  • 使用-h选项,可以满足该需求

2.1.3 -H使用1000进制

  • 使用-h以合适的单位展示磁盘使用情况时,进制为1024,可以使用-H指定1000的进制

    df -hH
    
  • 效果如下:

  • 注意: -h-H,都不是--help的缩写

2.2 文件系统的类型

  • df命令还可以展示文件系统的类型(type),可以通过大写-T选项让其展示文件系统的类型

  • 有时,我们希望查看指定类型的文件系统 —— 可以通过小写-t选项实现

    df -hT -t xfs
    
  • 最终,将只展示xfs类型的文件系统

  • 有时,我们希望展示除某种类型外的、其他类型的文件系统 —— 可以通过-x选项实现

    df -hT -x xfs
    
  • 最终,将展示非xfs类型的文件系统

2.3 最佳实践:确认文件/目录可以使用的磁盘空间

  • 学到了这里,貌似df命令没啥用 😂

  • 实际工作中,经常会遇到类似的情况:想往目录 /bigdata/benchmark写入一个100GB的文件,对应的磁盘是否有足够的空间呢?

  • 这时,df命令非最佳实践就出现了:通过指定目录,知道对应磁盘的可用空间,从而避免磁盘写满、影响系统或程序的正常运行

    df -h /bigdata/benchmark
    
  • 从执行结果可以看出,完全可以向 /bigdata/benchmark目录写入一个100GB的文件

2.4 参考链接

3. du命令

  • 通过du --help查看du命令的帮助信息,对该命令的描述如下:

    Summarize disk usage of each FILE, recursively for directories.

  • 翻译一下:统计每个文件的磁盘使用情况,对于目录会进行递归计算
  • du可以看做是disk usage的缩写,会统计目录下的文件、子目录所占用的磁盘大小,也就是会统计该目录大小

3.1 基本使用

3.1 指定单位

  • 使用du统计文件(目录)大小时,需要指定文件。

    du /bigdata/benchmark/
    
  • 递归展示/bigdata/benchmark/目录下,各子目录以及自身的大小

  • 若不指定文件,则统计当前目录./的大小

  • df一样,可以通过-B选项指定单位,从而方便阅读

  • 除此之外,du命令还允许通过-b-k-m直接指定单位

3.1.2 -h增加可读性

  • 为了方便阅读,可以使用h选项以合适的单位进行展示

3.2 展示文件大小

  • 上面的执行结果,只展示了指定目录及其子目录的大小。然而,在排查大文件时,我们还想知道目录下的文件大小

  • 这时,可以使用-a选项,同时统计文件和目录的大小

    du -ah /bigdata/presto-cli/
    
  • 最终,/bigdata/presto-cli/目录下各文件的大小也将会统计

3.3 如何避免过多的统计信息

3.3.1 -a选项:只展示指定目录的大小

  • 使用du统计目录大小时,会发现如果该目录存在很多的子目录,展示的结果就跟cat一个文件的内容一样:一下子打印太多,反而干扰了关键信息的展示

  • 有时,我们只想知道当前目录的大小,不用统计其子目录的大小

  • 这时,可以使用-s选项,只展示该目录的大小

    du -sh /bigdata/presto-cli/
    

3.3.2 -d选项:只展示指定层级的目录大小

  • 很多时候,目录的层级很深,通过du命令查看目录大小时,不需要知道底层子目录的大小,只需要知道最上面几层子目录的大小

  • /bigdata/compile目录为例,其子目录的层级非常深

  • 如果直接使用du -h /bigdata/compile查看目录大小,最后打印的信息会把眼睛都给闪瞎 😂

  • 这时,可以使用-d选项限制目录层级,-d选项是--max-depth的缩写

  • 例如,下面就是使用-d选项,只统计第一层子目录的大小

    du -h -d 1 /bigdata/compile/
    
  • 也可以直接使用--max-depth,效果一样

    du -h --max-depth=1 /bigdata/compile/
    
  • 一般的话,如果是排查目录下的大文件,我会这样使用du命令:

    • 既统计子目录大小,又统计文件大小;
    • 只查看第一层子目录的情况,确定子目录后,不断更新/dir从而层层逼近大文件所在的目录
    du -ah --max-depth=1 /dir
    

3.4 其他

  • 除此之外,还有一些本人步长使用的选项

  • --time,获取目录下文件或子目录的最近修改时间

  • --exclude=PATTERN选项,忽略满足正则表达式的文件


4. 总结

  • df命令: disk free的缩写,可以用于查看某个目录所在磁盘的剩余空间,避免大量文件写入该目录,导致磁盘爆满
  • du命令:disk usage的缩写,可以用于统计目录大小,在发现目录中的大文件十分有用
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 22:49:56  更:2022-07-04 22:51:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:49:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码