不甩锅的码农

行胜于言,和锅锅一起成长。

01

du 与 df 作用与区别?

Linux 最有用最常用的统计文件大小命令是什么?无疑就是 du 和 df 了。

  • du(disk usage)

du 能看到的文件只是一些当前存在的,没有被删除的。

  • df(disk free)

当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失,而是暂时消失,当所有程序都不用时,才会根据 OS 的规则释放掉已经删除的文件,df 记录的是通过文件系统获取到的文件的大小,它比 du 强的地方就是能够看到已经删除的文件。

df 和 du 不一致情况就是是否可看到被删除的文件,这也是 df 统计可能比 du 统计大的原因。

02

du 常用命令示例

  • du -a #  显示当前目录下所有文件所占空间(含隐藏文件);

  • du -h # 显示当前目录下所有文件及目录(包含子目录下内容)大小,-h 会换算成 K、M、G 等人类易读结果;

  • du -s # 显示当前目录总大小;du -sh # 统计当前文件夹内容总大小,-s 参数显示总计;

  • du -sh [文件夹1] [文件1] #  统计当前目录下的文件夹或文件大小;

  • du -sh /usr/local #  显示指定目录大小;

  • du -sh * #显示当前目录下每个文件夹或文件的大小;

  • du -h --max-depth=1 [目录] # 只显示指定目录下第一层目录的大小;

  • du -h --max-depth=2 [目录] # 只显示指定目录第一、二层目录的大小;

03

sort 常用参数

(sort 作用是将文件内容排序,以行为单位)

  • -n  # 依照数值的大小排序;

  • -r  # 以相反的顺序来排序;

  • -o  # 将排序后的结果存入制定的文件;

  • -b  # 忽略每行前面开始出的空格字符;

  • -c  # 检查文件是否已经按照顺序排序;

  • -f  # 排序时,将小写字母视为大写字母;

  • -m  # 将几个排序号的文件进行合并;

?以下几个参数与 -n 排序方式互斥:

  • -i  # 排序时,除了040至176之间的ASCII字符外,忽略其他的字符;

  • -d  # 排序时,处理英文字母、数字及空格字符外,忽略其他的字符;

  • -M  # 将前面3个字母依照月份的缩写进行排序;

04

常用组合 du + sort + head

  • du -a /temp/logs  | sort -nr #  按照文件大小从大到小排序(含隐藏文件);

  • du -h /temp/logs | sort -nr | head -n 10 # 按照文件大小从大到小排序,显示 Top10;

  • du -m --max-depth=1  /temp/logs  | sort -nr | head -n 10 # 指定目录第一层,显示前 Top10,-m: 统计单位为MB,为什么不用-h?sort 大小排序只看数字,不看单位,可能会导致 2G 反而排序在 200M 之后;

  • du -m --max-depth=1   /temp/logs  | sort -nr -o 'sort.txt' | head -n 10 # 使用sort -o 参数将排序结果存入指定文件sort.txt 中。

05

如何删除文件,如大的日志文件?

通常使用 rm 命令删除文件以释放空间。但是我们无法删除文件是非常常见的,因为应用程序此时正在使用该文件,直接删除它们会产生有害影响,例如挂起应用程序,应用程序崩溃等。

一:空字符串覆盖文件内容,是删除文件的一种优雅方式

echo "" > info.log

二:echo 不管用的特列情况,使用如下步骤

(1)du -sh * # 查看文件的使用情况;

(2)du -h  --max-depth=1  [文件目录]| sort -nr # 查找占用磁盘的文件目录的大文件,删除日志(优雅使用 echo "" > xx.log),发现磁盘使用率仍未下降;

(3)lsof | grep delete # 发现有文件句柄并未释放的大文件,导致磁盘使用率未下降,文件已经 deleted 了,但是进程还未结束,所以直接kill;

(4)kill -9 [pid] # kill 这个进程(这个要根据线上实际情况来看是否可以被 kill,最好优雅关闭进程),最后查看 df -h 恢复正常。

06

小结

du 常用的组合命令是与sort、head一起使用,排序找出最大的那批文件。在遇到磁盘溢满问题的时,可以与 find 命令合用找出最大的那一批文件删掉。与 sort 排序统计时使用具体的-m、-k参数,而不是用-h,否则会导致统计不准确。因为sort -n是根据数字大小,而不是单位进行统计。还有生产环境删除大文件的一些操作套路。

1

END

1

「转载,请注明来源 "不甩锅的码农" 公众号」封面-斑头雁

微信公众号「留言」功能,腾讯官方在2018-03-12公告对新开通的公众号进行关闭,以响应国家政策。对交流造成不便,可直接对公众号发送信息进行留言!

「往期原创系列推荐」

Linux 文件与目录命令的必会姿势!

Linux 查看文件内容的5个命令姿势!

Linux 揭开神器 vim 面纱!

Linux 命令三剑客之-sed!

Linux 三剑客之-grep!

Linux 三剑客之-awk!

Linux 文件查找神器-find!

不甩锅的码农

行胜于言,和锅锅一起成长。

关注

你“在看”我吗?

排序只显示前5_Linux 文件大小统计与排序 du,df 和 sort!相关推荐

  1. 一张表按分类查询:只显示前2行

    描述:按登录用户名称查询:登录用户有用很多.按登录用户进行筛选,并每个登录用户类只显示前2行 sql代码 select * from sys_user_login_log s where 2>( ...

  2. 网易云网页端歌单只显示前20首解决方法

    网易云网页端歌单只显示前20首解决方法 现象说明 网易云网页端不给听完整的歌单了,只能听前20首,想听到歌单列表中的所有歌曲,怎么解决. 处理办法 用开发者工具将cookie的os改为pc即可解决. ...

  3. 009 Linux 文件大小统计与排序( du于df和sort)

    01 du 与 df 作用与区别? du(disk usage) df(disk free) 02 du 常用命令示例 03 sort 常用参数 04 常用组合 du + sort + head 05 ...

  4. mysql只显示前几行_常见数据库SELECT结果只显示前几条记录方法汇总

    为了查看数据表中的数据情况.经常会遇到想让查询结果只显示N行,比如只显示10行的情况.不同的数据库有不同的关键字和SELECT实现语法. 1.SQL Server数据库 select top 10   ...

  5. html 账号只显示前3位,只知道手机号码前三位还有名字能查到全部号码 – 手机爱问...

    2018-04-01 新浪的地址是什么呢? 请注意:如果您的邮箱已经开始收费,退订成功后,从下个月起将不会从您的手机上再次扣费.退订后,您的收费邮箱到期后将不能使用,所以请您一定要做好备份. 退订请您 ...

  6. java 获取年 两位,java使用jxl读取日期年份只显示前两位的解决方法

    上传的excel日期为"1988/9/1",java使用jxl包读取结果为"19-9-1",年份缺少了前面的两位. 解决方法是使用DateCell. 如下面的代 ...

  7. 将手机号,银行卡,身份证只显示前三位和后四位。为了保护用户的信息

    /*      * 隐藏中间位,首尾各保留3位      * @param map 传入Map集合      * @param key 传入需要加密value所对应map中的key数组      * ...

  8. elementUI table自定义表头弹框搜索,排序,显示tag标签

    elementUI table自定义表头弹框搜索,排序,显示tag标签 允许一种排序,多种搜索条件 包括三种类别,添加了solt插槽,也可以自定义: 输入框[input] 多选[checkbox] 范 ...

  9. ##英语文本的单词统计 排序并输出前5%

    ## 英语文本的单词统计 排序并输出前5% /*统计英语文本英语个数及150%***************************************************** *//* /* ...

最新文章

  1. python多项式回归_Python 多项式回归 - 树懒学堂
  2. Android 个人学习笔记- 导入android项目,无法自动生成R文件的解决方法
  3. relu不可微为什么可用于深度学习
  4. 区块链软件公司:区块链使用程序如何成为战胜商场应战的垫脚石
  5. 跟我学 Java 8 新特性之 Stream 流(七)流与迭代器,流系列大结局
  6. Request/Response【学习笔记03】
  7. php 比java 快_php比java要快在哪里
  8. 操作系统(王道笔记第三章内存)
  9. 微软警告:Office 已遭IE RCE 新0day 攻击
  10. windows server 2008配置之AD域服务器 2
  11. win10计算机管理看不见蓝牙,如何解决Win10设备管理器找不到蓝牙?
  12. 环境配置之:pip 一步到位解决 pytorch-gpu 安装
  13. Word多级标题测试-去掉标题多级编号
  14. matlab程序求反应谱,MATLAB程序精确法求解反应谱
  15. 千方百剂创建账套服务器文件,千方百剂辅助工具使用手册(图解).doc
  16. 洛谷试炼场P1035 级数求和
  17. 计算机病毒是谁做的,第一个制造电脑病毒的人是谁?
  18. linux mod jk.so,linux - mod_jk无法连接Apache和tomcat - SO中文参考 - www.soinside.com
  19. 服务器遭到newinit.sh木马挖矿攻击记录
  20. 重构ElementUI解决DatePicker日期选择组件修改父组件placement参数问题[Vue.js项目实践: 新冠自检系统]

热门文章

  1. sql over的作用及用法
  2. windows codeblocks clang 3.7.0
  3. Delphi XE5 for Android (十)
  4. nagios 3.2安装详解(一)
  5. Foursquare开源Rogue和Full-Loaded两款开发工具
  6. SQL 时间类型转字符串格式列表
  7. 微信小程序接入,https服务器搭建和调试
  8. 计算MySQL的内存峰值公式
  9. java 矩阵转置算法
  10. EntityFramework Code-First 简易教程(三)-------数据库初始化