Linux中du、df显示不一致问题
Linux中du、df显示不一致问题
最近在做关于Q博士的项目的时候,用到了docker进行部署,对于后端服务可能会经常变动,于是将docker容器的jar包与宿主机目录下的jar包进行绑定,之后每次需要更新的时候替换掉原来的jar包,然后重启容器即可。当我使用docker logs -f 查看容器日志时,发现需要遍历原来所有的日志,对于运行了很长时间的容器来说,光是遍历就要花很长时间,虽然可以用 --tail 100 只查看尾部100行,但是日志越来越大肯定会撑爆磁盘,这时我想要清除日志文件,发现使用du -sh 和 df -h 统计的结果不一致,于是搜索了下相关的信息,这篇博文介绍的非常清晰https://www.linuxidc.com/Linux/2018-03/151600.htm
1、du统计的原理
(1)如果统计目录下挂载了其他文件系统,那么也会对这个文件系统进行统计。
(2)如果文件被删除,即使被其他进程引用了,du命令也无法对其统计。因为stat命令找不到这个文件。
(3)可以跨分区统计某些你想统计的文件大小总和。因为它们都能被stat找到并统计。
2、df统计的原理
(1)当某个文件系统下挂载了其他分区,df不会把这个分区也统计进去。
(2)由于df每次统计都是读取superblock,所以df对文件系统中的某个文件进行统计时,会自动转为统计这个文件系统的信息。
(3)df会统计已删除但却仍有进程引用的文件。
从以上原理可以看出,du统计的结果并不总是比df小,因为du会统计目录下的挂载文件,而df不会。然而du不会
统计已经被删除但仍然被进程使用的文件,而df会统计。
针对于上述docker日志,如果不想清空日志文件,使用 echo "" > 即可,因为使用rm -rf不会释放空间(docker进程仍然占用),除非重启容器。
Linux中du、df显示不一致问题的更多相关文章
- Linux中du和df
Linux运维过程中,常常发现du和df返回值不一样,偶尔会发现区别非常大. 特定情况下,可能df看到磁盘已满,可是du推断磁盘剩余空间非常大. 文件系统分配当中的一些磁盘块用来记录它自身的一些数据. ...
- linux中du的用法
du:Disk Usage的缩写,命令功能为显示目录(或文件)所占磁盘空间的大小. 语 法:du [-abcDhHklmsSx0] [-L][-X File][--block-size=SIZE][- ...
- 在Linux中让文本显示带颜色的字。
在linux中让echo命令显示带颜色的字需要使用参数-e 格式:echo -e "\33[字体背景颜色:文字颜色m字符转\033[0m" 注: 1.字体背景颜色和文字颜色之间是英 ...
- Linux中 du (详解)、 df (详解)和 free(详解)以及它们的区别
转至:https://blog.csdn.net/qq_19167629/article/details/80915834?utm_medium=distribute.pc_relevant_t0.n ...
- linux中du与df的区别和联系
1,两者区别 du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在 的,没有被删除的.他计算的大小就是当前他认为存在的所有文件大小的累加和. df, ...
- 简单了解Linux中 du 和 df 以及它们的区别
一 .du : 显示每个文件和目录的磁盘使用空间~~~文件的大小. 命令参数: -a #显示目录中文件的大小 单位 KB . -b #显示目录中文件的大小,以字节byte为单位. -c #显 ...
- linux中date命令显示昨天的日期信息?以特定格式显示时间?
需求描述: linux环境中,在使用date命令的时候,可以通过-d指定日期的字符串来显示日期 操作过程: 1.通过date显示昨天的日期 [root@redhat6 ~]# date -d 'yes ...
- mac/linux中vim永久显示行号、开启语法高亮
步骤1: cp /usr/share/vim/vimrc ~/.vimrc 先复制一份vim配置模板到个人目录下 注:redhat 改成 cp /etc/vimrc ~/.vimrc 步骤2: vi ...
- linux中vi/vim显示行号设置
vim打开文件是,默认不提示行号. 至于显示行号的用途,因人而异 临时修改只需要在编辑文件时输入 :set number 即可 linux下一个主机可能有N个账户.对于配置分为两种:仅配置当前账户,配 ...
随机推荐
- npm镜像及配置方法
npm全称Node Package Manager,是node.js的模块依赖管理工具.由于npm的源在国外,所以国内用户使用起来各种不方便.下面整理出了一部分国内优秀的npm镜像资源,国内用户可以选 ...
- kindeditor编辑器微软雅黑样式font-family值变成"
http://www.100cm.cn/article-126-764.html kindeditor编辑器中选中文字, 修改字体(字体名称中带有空格, 例如"Microsoft YaHei ...
- Python图表绘制Matplotlib
引入 import numpy as npimport pandas as pdimport matplotlib.pyplot as plt# 导入相关模块 使用 # 图表窗口1 → plt.sho ...
- Python--day24--复习
- 最小生成树prim、
过年那几天确实没好好学习.在老家闲着也是闲着.可是就是没看书. 回来这几天又一直在弄个人博客.买域名云服务器备案什么的- -. 麻烦死了呢. 在腾讯花1块钱备案了一个网站www.goodgoodstu ...
- Linux下FTP的安装和登陆
对于一个经常接触电脑的人来说,FTP无形中出现在我们生活的各个角落.日常生活中的文件上传和下载很多时候就是依靠FTP去实现的. 专业的说,FTP 是File Transfer Protocol(文件传 ...
- [转]C#中 ??、 ?、 ?: 、?.、?[ ] 问号
1. 可空类型修饰符(?) 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; 是正确的,int i=null; 编译器就会报错.为了使值类型也 ...
- html input onfocus
<input type="text" value="请输入内容" onfocus="javascript:if(this.value=='请输入 ...
- 如何用for..of.. 遍历一个普通的对象?
如何用for..of.. 遍历一个普通的对象? 首先了解一下for..of..: 它是es6新增的一个遍历方法,但只限于迭代器(iterator), 所以普通的对象用for..of遍历 是会报错的.下 ...
- codeforce 379(div.2)
A.B略 C题 ——贪心,二分查找: 对于每一个a[i], 在d中二分查找 s-b[i],注意不要忘记计算速度为x时需要花费的最小时间,以及整数范围为64位整数 1 #include <cstd ...