背景

项目正常运行,然后某一天出现静态资源拿不到,需要重复刷新或者管理后台登录不上的情况。项目没有报异常,没有出错。经过排查,是服务器磁盘空间不足造成的。

那就研究一下吧,这些东西是躲不过去也糊弄不过去的。

【1】df命令

df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

语法

df(选项)(参数)

选项:

-a或--all:包含全部的文件系统;
--block-size=<区块大小>:以指定的区块大小来显示区块数目;
-h或--human-readable:以可读性较高的方式来显示信息;
-H或--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;
-i或--inodes:显示inode的信息;
-k或--kilobytes:指定区块大小为1024字节;
-l或--local:仅显示本地端的文件系统;
-m或--megabytes:指定区块大小为1048576字节;
--no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值;
-P或--portability:使用POSIX的输出格式;
--sync:在取得磁盘使用信息前,先执行sync指令;
-t<文件系统类型>或--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;
-T或--print-type:显示文件系统的类型;
-x<文件系统类型>或--exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息;
--help:显示帮助;
--version:显示版本信息。

参数:

文件(路径):指定文件系统上的文件(路径)。

① df

[root@heheapp1 ~]# df
Filesystem           1K-blocks     Used Available Use% Mounted on
/dev/mapper/vg_heheapp1-lv_root51475068 18838840  30014788  39% /
tmpfs                 16438268      228  16438040   1% /dev/shm
/dev/xvda1              487652    69103    392949  15% /boot
/dev/mapper/vg_heheapp1-lv_home40645196   621912  37951940   2% /home

② df -h

(使用-h选项以KB以上的单位来显示,可读性高)

[root@heheapp1 ~]# df -h
列注释:文件系统          容量  已用 可用  已用% 挂载点
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_heheapp1-lv_root50G   18G   29G  39% /
tmpfs                  16G  228K   16G   1% /dev/shm
/dev/xvda1            477M   68M  384M  15% /boot
/dev/mapper/vg_heheapp1-lv_home39G  608M   37G   2% /home


③ df -a

[root@heheapp1 ~]# df -a
Filesystem           1K-blocks     Used Available Use% Mounted on
/dev/mapper/vg_app1-lv_root51475068 18838332  30015296  39% /
proc                         0        0         0    - /proc
sysfs                        0        0         0    - /sys
devpts                       0        0         0    - /dev/pts
tmpfs                 16438268      228  16438040   1% /dev/shm
/dev/xvda1              487652    69103    392949  15% /boot
/dev/mapper/vg_app1-lv_home40645196   621912  37951940   2% /home
none                         0        0         0    - /proc/sys/fs/binfmt_misc
none                         0        0         0    - /proc/xen
gvfs-fuse-daemon             0        0         0    - /root/.gvfs

④ df -h /opt

查看/opt 路径下文件磁盘空间情况:

[root@pc0 /]# df -h /opt
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        14G  6.1G  6.8G  48% /

【2】du命令查看指定目录磁盘空间

du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看。可以这样理解,df偏向于整体磁盘-宏观,du倾向于文件目录-微观。

语法格式

du [选项][文件]

选项:

-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
-D或--dereference-args 显示指定符号链接的源文件大小。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或--count-links 重复计算硬件链接的文件。
--max-depth=1 子目录深度
–help 显示帮助。
–version 显示版本信息。

① du

[root@app1 tomcat8086]# du //建议使用du -h ,以M为单位
56      ./webapps/host-manager/images
16      ./webapps/host-manager/WEB-INF/jsp
28      ./webapps/host-manager/WEB-INF
8       ./webapps/host-manager/META-INF
104     ./webapps/host-manager
56      ./webapps/manager/images
44      ./webapps/manager/WEB-INF/jsp
56      ./webapps/manager/WEB-INF
8       ./webapps/manager/META-INF
144     ./webapps/manager
252     ./webapps
7560    ./lib
4       ./work/Catalina/localhost/host-manager
12      ./work/Catalina/localhost/ROOT/org/apache/jsp
16      ./work/Catalina/localhost/ROOT/org/apache
20      ./work/Catalina/localhost/ROOT/org
24      ./work/Catalina/localhost/ROOT
68      ./work/Catalina/localhost/manager/org/apache/jsp/WEB_002dINF/jsp
72      ./work/Catalina/localhost/manager/org/apache/jsp/WEB_002dINF
92      ./work/Catalina/localhost/manager/org/apache/jsp
96      ./work/Catalina/localhost/manager/org/apache
100     ./work/Catalina/localhost/manager/org
104     ./work/Catalina/localhost/manager
136     ./work/Catalina/localhost
140     ./work/Catalina
144     ./work
4       ./conf/Catalina/localhost
8       ./conf/Catalina
244     ./conf
4       ./temp
816     ./bin
2144    ./logs
786908  ./hh
798160  .

只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的798160为当前目录的总大小,此时单位为kb。


② du [文件] - 显示指定文件所占空间

[root@app1 tomcat8086]# du ./logs/catalina.out
964     ./logs/catalina.out

③ 查看指定目录的所占空间

[root@app1 tomcat8086]# du ./hh
786976  ./hh

④ 只显示总和的大小

[root@app1 tomcat8086]# du -sh
780M    .

⑤ 深度为1–du -ach --max-depth=1 /opt

[root@bogon home]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        18G  8.3G  8.3G  50% /
tmpfs           491M  228K  491M   1% /dev/shm
/dev/sda1       283M   34M  234M  13% /boot
.host:/         100G   18G   83G  18% /mnt/hgfs
/dev/sdb1       2.0G  3.1M  1.9G   1% /home/sdb1# 当前路径下,深度为1
[root@bogon home]# du --max-depth=1 ./
136768  ./mysql
28  ./sdb1
572 ./jane
540 ./janus
137912  ./
[root@bogon home]# #  指定路径  深度为1与2对比
[root@bogon home]# du -ach --max-depth=1 /opt
4.0K    /opt/rh
4.0K    /opt/java需要软件百度云.txt
12K /opt/test
14M /opt/www
14M /opt
14M total[root@bogon home]# du -ach --max-depth=2 /opt
4.0K    /opt/rh
4.0K    /opt/java需要软件百度云.txt
8.0K    /opt/test/test2
12K /opt/test
8.3M    /opt/www/xc_train
5.3M    /opt/www/bysj
14M /opt/www
14M /opt
14M total[root@VM-24-14-centos recruite8091]# du -h --max-depth=1 ./*
8.0K    ./application.properties
4.0K    ./clear.sh
8.0K    ./config.json
83M     ./recruit-0.0.1-SNAPSHOT.jar
4.0K    ./restart.sh
4.0K    ./stop.sh

查看某个目录的文件大小并排序:

du -hm --max-depth=1 /var/ | sort -n

【3】查看硬盘与分区信息

fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区。

语法

fdisk(选项)(参数)

选项

-b<分区大小>:指定每个分区的大小;
-l:列出指定的外围设备的分区表状况;
-s<分区编号>:将指定的分区大小输出到标准输出上,单位为区块;
-u:搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址;
-v:显示版本信息。

参数

设备文件:指定要进行分区或者显示分区的硬盘设备文件。

查看硬盘分区信息

[root@iZ8vb3n2dl2w360w65xtf3Z ~]# fdisk -lDisk /dev/vda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00020f78Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *           1        5222    41940992   83  Linux

【4】常用实践

① 统计/home文件夹下文件的个数

[root@bogon home]# ls -l /home|grep "^-"|wc -l
1
[root@bogon home]# ll
total 20
drwx------. 25 jane  jane    4096 Jun 14 07:06 jane
drwx------. 24 janus mygroup 4096 Jul  4 00:31 janus
-rw-r--r--.  1 root  root    2140 Jul 10 20:29 java需要软件百度云.txt
drwx------.  5 mysql mysql   4096 Jul  3 02:24 mysql
drwxr-xr-x.  4 root  root    4096 Jul  9 02:57 sdb1

② 统计/home文件夹下目录的个数

[root@bogon home]# ls -l /home|grep "^d"|wc -l
4

③ 统计/home文件夹下文件的个数,包括子文件夹里的

// R表示递归统计
[root@bogon home]# ls -lR /home|grep "^-"|wc -l
302

④ 统计/home文件夹下目录的个数,包括子文件夹里的

[root@bogon home]# ls -lR /home|grep "^d"|wc -l
27

⑤以树状显示目录结构

tree /home/

【5】df 与du显示空间不一致

背景:测试说磁盘空间不够了,df -h看了一下,200多G的硬盘占用100%。但是用du -sh /home看了一下只有103G。那么问题来了,另外100多G去哪里了?

使用lsof |grep deleted 命令检测如下图所示:

好了,发现问题了!Tomcat的apache-tomcat-8.5.37/logs/catalina.out143G没有彻底释放!重启Tomcat服务解决!

参考博文:Linux添加硬盘并进行分区、格式化、挂载

Linux下使用df与du命令查看磁盘空间相关推荐

  1. 【阿里云】阿里云磁盘异常爆满的原因排查及解决方法,df和du命令查看磁盘时结果不一致

    [阿里云]阿里云磁盘异常爆满的原因排查及解决方法,df和du命令查看磁盘时结果不一致,虽然磁盘显示满了,但是通过du查询磁盘空间实际上空间并没有满 文章目录 一.阿里云磁盘空间满了如何查看 二.使用d ...

  2. Linux系统中df与du命令查看分区大小

    一. df:检查文件系统占用磁盘情况 disk free的缩写,使用 statfs 系统调用,直接读取分区的超级块信息获取分区使用情况.它的数据是基于分区元数据的,所以只能针对整个分区.由于 df 直 ...

  3. Linux下用ls和du命令查看文件以及文件夹大小

    ls的用法 ls -l |grep "^-"|wc -l或find ./company -type f | wc -l  查看某文件夹下文件的个数,包括子文件夹里的. ls -lR ...

  4. 【转载】Linux下用ls和du命令查看文件以及文件夹大小

    1.ls的用法 ls -ll                                     列出当前目录下所有文件的大小以及所有文件大小的统计总和(显示成字节大小) ls -lh      ...

  5. linux中ls文件内存大小,Linux下用ls和du命令查看文件以及文件夹大小

    webdriver零碎知识点 #零碎知识点,用于记录平时遇到的比较杂的知识点 driver.current_url 获取当前url phantomjs 实现无浏览器界面自动化测试(driver = w ...

  6. 利用linux的df和du命令查看文件和目录的内存占用

    版权声明:本文为博主原创文章,转载请超链接注明出处.    https://blog.csdn.net/ljc1026774829/article/details/74935658 当磁盘大小超过标准 ...

  7. df 命令查看磁盘空间_Linux df命令检查磁盘空间

    df 命令查看磁盘空间 Periodically, you may need to monitor or check the disk space on your system to ensure t ...

  8. linux中的df和du命令

    两者区别 du disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在 的,没有被删除的,它计算的大小就是当前他认为存在的所有文件大小的累加和. df di ...

  9. df和du显示的磁盘空间使用情况不一致的原因及处理

    引言 如何记忆这两个命令 df 和du 的工作原理 du的工作原理 df的工作原理 du和df不一致情况模拟 工作中需要注意的地方 总结 引言 在Linux下查看磁盘空间使用情况,最常使用的就是du和 ...

最新文章

  1. nginx的upstream问题记录
  2. ICS汇编学习笔记——8086的指令系统
  3. python response.read_AttributeError:“Response”对象没有“read”属性
  4. (iOS开发总结)MVC模式
  5. CodeForces - 1200E Compress Words(字符串哈希)
  6. [转载]Javascript异步编程的4种方法
  7. Kafka学习(一)-------- Quickstart
  8. java8 Optional正确使用姿势
  9. w ndows8系统没有声音怎么,Windows 8.1 系统新装没有声音
  10. SAP License:SAP学习笔记
  11. 二、SpringBoot配置文件讲解
  12. spring boot 2使用Mybatis多表关联查询
  13. 医疗新基建,更需新安全
  14. 小白能读懂的 《手把手教你学DSP(TMS320X281X)》第六章 F2812的存储器映像
  15. matlab单服务排队模型,MATLAB模拟银行单服务台排队模型
  16. 字节码增强之Javassist
  17. Guava基本工具包Base:Null和字符串分割(Splitter)、拼接(Joiner)处理
  18. zookeeper压缩包下载地址
  19. 青岛大学计算机调剂群,2019山东青岛大学硕士研究生调剂公告(4月16日更新)...
  20. Android 手机模拟游戏手柄(USB,C#,winio)

热门文章

  1. Linux:NFS服务器
  2. Unity编写冰球对战游戏 2D版
  3. 谷歌日志glog库的使用
  4. 计算机类核心期刊审稿与发表周期,一般核心期刊的发刊周期有多长
  5. JQ手册 JQ方法大全 jq获取表单值与赋值代码 50个JQ的例子
  6. 交付给事业多少,你就能成就多少事业
  7. Kafka 核心原理(贼全面)
  8. sklearn入门——聚类算法KMeans
  9. 基于以太坊ICO的安全合约架构
  10. python安装第三方库re_音频处理 windows10下python三方库librosa安装教程