Linux命令更新-du 和 df

news2024/9/9 1:06:24

命令简介


dudf 是 Linux 系统中常用的两个磁盘空间管理命令,用于查看磁盘的使用情况。

  • du (disk usage):用于显示文件和目录所占用的磁盘空间。

  • df (disk free):用于显示文件系统的磁盘使用情况统计。

命令区别

命令功能作用范围
du显示文件或目录的大小文件或目录
df显示文件系统的磁盘使用情况文件系统

简单来说,du 是从文件角度去查看磁盘占用情况,而 df 是从文件系统角度去查看磁盘占用情况。

命令参数

du 命令常用参数
  • -h:以人类可读的格式显示大小,例如 1K、2.3M、4G。

  • -s:仅显示总计,只显示指定目录或文件的大小。

  • -a:显示目录中所有文件的大小。

  • -m:以 MB 为单位显示。

  • -k:以 KB 为单位显示。

  • –max-depth=N:指定递归的最大深度。

df 命令常用参数
  • -h:以人类可读的格式显示大小,例如 1K、2.3M、4G。

  • -k:以 KB 为单位显示。

  • -m:以 MB 为单位显示。

  • -T:显示文件系统的类型。

  • -i:显示 inode 信息。

命令用法示例

du 命令示例
  • 查看当前目录下所有文件和子目录的大小,并以人类可读的格式显示:```
    du -sh *

    
    
  • 查看 /var 目录的大小,并以 MB 为单位显示:```
    du -sm /var

    
    
  • 递归显示 /home 目录下所有文件和子目录的大小,并指定最大递归深度为 2:```
    du -h --max-depth=2 /home

    
    
    
df 命令示例
  • 查看所有文件系统的磁盘使用情况,并以人类可读的格式显示:```
    df -h

    
    
  • 查看 /boot 分区的使用情况,并显示文件系统类型:```
    df -hT /boot

    
    
    

运维示例

案例:查找占用空间最大的10个目录

  1. 使用 du 命令递归统计所有目录大小:
du -sh /*

  1. 将输出结果排序,并取前10行:
du -sh /* | sort -nr | head -n 10

案例:检查系统是否有磁盘空间不足的风险

  1. 使用 df 命令查看所有文件系统的使用情况:
df -h

  1. 过滤出使用率超过80%的文件系统:
df -h | awk '$5 >= "80%" {print $6}'

运维问题:dfdu 查询结果不一致分析与解决方案

问题根源

df -hdu -sh 两者虽然都用于查看磁盘使用情况,但其计算方式和统计范围存在差异:

  • df -h 从文件系统层面统计磁盘使用情况,包括文件数据、目录结构、元数据等。

  • du -sh 从文件层面统计磁盘使用情况,主要统计文件的大小,但不包括所有元数据。

因此,当出现结果不一致时,通常是以下因素导致:

  • 文件系统元数据: 包括 inode、目录条目、权限信息等,这些数据 df 会统计,而 du 通常不统计。

  • 特殊文件: 软链接、硬链接、设备文件、管道等特殊文件,其大小计算方式不同。

  • 文件系统碎片: 严重的磁盘碎片可能导致 dudf 计算结果的差异。

  • 未释放的资源: 已删除的文件被进程持有句柄、缓存数据未同步等情况。

  • 文件系统错误: 文件系统损坏可能导致统计不准确。

解决方案

  1. 检查文件系统元数据:
  • 使用 tune2fs 检查文件系统状态:```
    tune2fs -l /dev/sda1

    
    
  • 使用 fsck 检查并修复文件系统错误:```
    fsck -f /dev/sda1

    
    
  • 注意: fsck 操作可能导致数据丢失,请谨慎使用,建议在备份数据后进行。

  1. 检查特殊文件:
  • 使用 find 命令查找软链接和硬链接:```
    find /path/to/directory -type l
    find /path/to/directory -samefile 

    
    
  • 使用 ls -l 查看文件类型:```
    ls -l /path/to/file

    
    
    
  1. 检查未释放的资源:
  • 使用 lsof 查找持有已删除文件句柄的进程:```
    lsof | grep deleted

    
    
  • 终止相关进程:```
    kill -9 

    
    
  • 同步文件系统缓存:```
    sync

    
    
    
  1. 检查磁盘碎片:
  • 使用 fsck 命令检查磁盘碎片:```
    fsck -c /dev/sda1

    
    
  • 使用 e4fsdefrag 或其他工具进行碎片整理:```
    e4fsdefrag -f /dev/sda1

    
    
    
  1. 深入分析:
  • 使用 du -a 查看每个文件的大小: 逐一排查异常大的文件。

  • 使用 find 结合 xargs 进行批量处理:```
    find /path/to/directory -type f -size +1G -exec du -sh {} ;

    
    
  • 使用 tree 可视化目录结构: 帮助快速定位问题。

脚本自动化

#!/bin/bash

# 检查文件系统
tune2fs -l /dev/sda1
fsck -f /dev/sda1

# 检查未释放资源
lsof | grep deleted > /tmp/deleted_files.txt
if [ -s /tmp/deleted_files.txt ]; then
  echo "Found deleted files with open file descriptors:"
  cat /tmp/deleted_files.txt
fi

# 检查软链接和硬链接
find /path/to/directory -type l -print
find /path/to/directory -samefile <file> -print

# 检查磁盘碎片
e4fsdefrag -v /dev/sda1

# 其他检查和处理
# ...

注意事项

  • 备份数据: 在进行任何操作前,务必备份重要数据。

  • 谨慎操作: fscke4fsdefrag 等命令可能导致数据丢失,请谨慎使用。

  • 针对性处理: 根据具体情况选择合适的处理方案。

  • 定期检查: 将上述脚本集成到系统监控中,定期检查并处理。

总结

dudf 命令是 Linux 系统中非常重要的磁盘管理工具。通过灵活运用这两个命令,可以方便地查看磁盘使用情况,查找占用空间大的文件或目录,及时发现潜在的磁盘空间不足问题,从而更好地管理系统资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1958827.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端必知必会-html实体与保留字转换和符号

文章目录 HTML 实体HTML 字符实体一些有用的 HTML 字符实体HTML 符号HTML 符号实体数学符号希腊字母其他一些实体总结 HTML 实体 HTML 中的保留字符必须用实体替换&#xff1a; <&#xff08;小于&#xff09; < >&#xff08;大于&#xff09; >HTML 字符实体 …

C#体检系统源码,医院健康体检系统PEIS,C#+VS2016+SQLSERVER

体检中心/医院体检科PEIS系统源码&#xff0c;C#健康体检信息系统源码&#xff0c;PEIS源码 开发环境&#xff1a;C/S架构C#VS2016SQLSERVER 2008 检前&#xff1a; 多种预约方式网站预约、电话预约、微信平台预约及检前沟通&#xff0c;提前制作套餐&#xff0c;客人到达体检…

内网穿透的应用-中文版个人知识库Trilium笔记本地安装结合内网穿透远程协作

文章目录 前言1. 安装docker与docker-compose2. 启动容器运行镜像3. 本地访问测试4.安装内网穿透5. 创建公网地址6. 创建固定公网地址 前言 今天和大家分享一款在G站获得了26K的强大的开源在线协作笔记软件&#xff0c;Trilium Notes的中文版如何在Linux环境使用docker本地部署…

使用 WeNet 训练 AISHELL-1 模型的详细入门指南

使用 WeNet 训练 AISHELL-1 模型的详细入门指南 在这篇文章中&#xff0c;我们将通过 WeNet 框架详细介绍如何训练 AISHELL-1 数据集的语音识别模型。我们将逐步解释各个阶段的操作&#xff0c;适合初学者入门。 1. 环境准备 1.1 安装miniconda miniconda官网 1. 获取下载链…

【Dash】Dash模块介绍

什么是Dash&#xff1f; Dash 是一个开源的 Python 框架&#xff0c;用于创建基于 Web 的应用程序。它由 Plotly 公司开发&#xff0c;专为数据科学家和分析师设计&#xff0c;以便他们可以构建自定义的数据可视化 Web 应用程序&#xff0c;而无需具备前端开发知识。Dash 提供…

Scrapy 爬取旅游景点相关数据(五)

本期内容&#xff1a;&#xff08;1&#xff09;爬取日本其他城市数据存入数据库&#xff08;2&#xff09;爬取景点评论数据 1 爬取其他城市景点数据 只爬取一个城市的数据对于做数据可视化系统可能是不够的&#xff0c;因为数据样本量少嘛&#xff0c;本期来爬取其他城市的景…

Qt之详解QPainter

文章目录 前言QPainter 是干什么的如何使用 QPainter在哪个函数使用 QPainter为什么要在这里使用 QPainter最简单的示例代码 QPainter 函数构造函数与析构函数QPainter()QPainter(QPaintDevice *device)~QPainter() 初始化和结束绘图bool begin(QPaintDevice *device)bool end(…

x-cmd pkg | yazi - 超快终端文件管理器

目录 简介快速入门功能特点竞品和相关项目进一步阅读 简介 yazi 是由 github.com/sxyazi 用 Rust 开发的终端文件管理器&#xff0c;支持预览文本文件、pdf 文件、图像、视频&#xff0c;内置代码高亮功能。在内部&#xff0c;它使用 Tokio 作为其异步运行时&#xff0c;以非阻…

【百度超级智能体】零代码构建趣味语言游戏:秋日寻宝知识问答

前言 文心智能体平台AgentBuilder是由百度推出的一个创新平台&#xff0c;该平台基于其先进的文心大模型。这个平台旨在帮助开发者根据各自的专业领域和应用场景&#xff0c;以灵活多样的开发方法构建定制化的智能体&#xff08;Agent&#xff09;。通过简单易用的prompt编排功…

详解Qt 定时器QTimer

文章目录 前言QTimer 是什么什么时候使用 QTimer定时器时间到了调用什么函数 QTimer 的所有函数构造函数与析构函数QTimer(QObject *parent nullptr) 基本操作void start(int msec)void start()void stop()bool isActive() const 定时器属性void setInterval(int msec)int int…

瑞芯微平台RK3568系统开发(1)安卓环境搭建

1 开发环境搭建 注意: 重要&#xff01;重要&#xff01;重要&#xff01;自己编译后的固件&#xff0c; 必须先确认io_domains(4.2章节)后&#xff0c;才可以下载到板子运行&#xff0c; 否则可能造成烧坏RK3568的情况。 1.1 更新系统 ~$ sudo apt-get update 1.2 安装依…

MATLAB多元函数梯度下降法找最小值-梯度演示-绘制梯度方向

如果海森矩阵在所有可能的参数值上都是正定的&#xff0c;则该函数是凸的&#xff1b;函数将呈现为光滑的碗状&#xff0c;使得训练过程相对简单。存在单 一的全局最小值&#xff0c;不会有局部最小值或鞍点。 沿着梯度方向&#xff0c;函数变化最快。 x&#xff0c;y点的更新…

LNMP动态网站环境部署

1、LINUX部署 stop firewallddisable selinux 2、Nginx部署 ​ vim /etc/yum.repos.d/nginx.repo [nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck1 enabled1 gpgkeyhttps://nginx.org/keys/nginx_signing.…

Java 多线程编程核心技术权威指南(电子版教程)

前言 Java多线程编程是现代软件开发中不可忽视的关键技术&#xff0c;它能有效利用多核处理器的计算能力&#xff0c;实现并发执行&#xff0c;提升系统性能和响应速度。本篇博客将带您深入了解Java线程的核心概念、高级用法以及并发编程中的常见问题与解决方案。无论您是Java…

前端web开发HTML+CSS3+移动web(0基础,超详细)——第1天

一、开发坏境的准备 1&#xff0c;在微软商店下载并安装VS Code 以及谷歌浏览器或者其他浏览器&#xff08;我这里使用的是Microsoft Edge&#xff09; 2&#xff0c;打开vs code &#xff0c;在电脑桌面新建一个文件夹命名为code&#xff0c;将文件夹拖拽到vs code 中的右边…

《python语言程序设计》2018版第6章第19题几何问题点的位置,利用4.31显示如何测试一个点是在一条有向线的左、右还是刚好在线上

# 这个是4.31的代码&#xff0c;一个函数里包含了。在线上&#xff0c;在线左&#xff0c;在线右 def judgePoint(x0, y0, x1, y1, x2, y2):juMethod ((x1 - x0) * (y2 - y0)) - ((x2 - x0) * (y1 - y0))if juMethod > 0:print("p2 is on the left side of the line f…

MATLAB 共轭梯度法求解线性方程组(附代码)

共轭梯度法求解线性方程组 1. 引言 共轭梯度法&#xff08;Conjugate Gradient Method&#xff09;是一种用于求解大型稀疏对称正定线性方程组的迭代算法。该方法结合了梯度下降法和共轭方向的概念&#xff0c;以达到更快速的收敛。共轭梯度法 是介于最速下降法与牛顿法之间的…

Android 11(R) IPC Binder机制 初版

Android 系统分为三层。最上层是application应用层&#xff0c;第二层是framework层&#xff0c;第三层是native层 1.Android 中的应用层和系统服务层不在同一个进程&#xff0c;系统服务在单独的进程中。每个应用的进程都是zygote fork出来的。 2.Android中不同应用属于不同…

数据驱动未来:构建下一代湖仓一体电商数据分析平台,引领实时商业智能革命

1.1 项目背景 本项目是一个创新的湖仓一体实时电商数据分析平台&#xff0c;旨在为电商平台提供深度的数据洞察和业务分析。技术层面&#xff0c;项目涵盖了从基础架构搭建到大数据技术组件的集成&#xff0c;采用了湖仓一体的设计理念&#xff0c;实现了数据仓库与数据湖的有…

《程序猿入职必会(4) · Vue 完成 CURD 案例 》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…