美文网首页
linux磁盘已满,查看文件占用

linux磁盘已满,查看文件占用

作者: 花神子 | 来源:发表于2019-09-18 14:14 被阅读0次

    1.使用df -h查看磁盘空间占用情况

    [root@localhost ~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/vda2        98G  6.5G   87G   7% /
    tmpfs           1.9G  276K  1.9G   1% /dev/shm
    /dev/vda1       485M   31M  429M   7% /boot
    

    df 命令说明

    • df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
    • 主要命令参数:
      -a 全部文件系统列表
      -h 方便阅读方式显示
      -H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
      -i 显示inode信息
      -k 区块为1024字节
      -l 只显示本地文件系统
      -m 区块为1048576字节

    2.使用 sudo du -s -h /* | sort -nr 命令查看那个目录占用空间大

    由于篇幅省略部分内容展示

    [root@localhost ~]# du -s -h /* | sort -nr
    du: cannot access `/proc/26503/task/26503/fd/5': No such file or directory
    du: cannot access `/proc/26503/task/26503/fdinfo/5': No such file or directory
    du: cannot access `/proc/26503/fd/5': No such file or directory
    du: cannot access `/proc/26503/fdinfo/5': No such file or directory
    452K    /dev
    418M    /usr
    364K    /tmp
    258M    /var
    146M    /lib
    76K     /root
    75M     /titan
    44K     /home
    25M     /etc
    21M     /boot
    18M     /lib64
    16K     /lost+found
    9.0M    /sbin
    5.8M    /bin
    4.2G    /app
    4.0K    /srv
    4.0K    /selinux
    4.0K    /mnt
    4.0K    /media
    1.2G    /opt
    0       /sys
    0       /proc
    

    3.然后那个目录占用多 再通过sudo du -s -h /app/* | sort -nr 一层层排查,找到占用文件多的地方。

    [root@localhost ~]# du -s -h /app/* | sort -nr
    810M    /app/smp_app
    734M    /app/uav.bk.20181109.old.bk
    505M    /app/uav
    501M    /app/uav.bk.20181114.old.bk
    391M    /app/tomcatapp
    99M     /app/smp-extension
    87M     /app/software
    35M     /app/apache-tomcat-7.0.73
    26M     /app/redis
    15M     /app/apache-tomcat-8.5.9
    4.0K    /app/test
    4.0K    /app/caifu
    1.1G    /app/uc_app
    

    du命令说明

    • 显示文件或目录所占用的磁盘空间。
    • 命令格式:du [option] 文件/目录
      • -h 输出文件系统分区使用的情况,例如:10KB,10MB,10GB等
      • -s 显示文件或整个目录的大小,默认单位是KB

    Linux 查找占用空间最大的文件与目录:du -h --max-depth=1

    sort命令说明

    • 将文本文件内容加以排序,sort可针对文本文件的内容,以行为单位来排序。
      参数:
      -b 忽略每行前面开始出的空格字符。
      -c 检查文件是否已经按照顺序排序。
      -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
      -f 排序时,将小写字母视为大写字母。
      -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
      -m 将几个排序好的文件进行合并。
      -M 将前面3个字母依照月份的缩写进行排序。
      -n 依照数值的大小排序。
      -o<输出文件> 将排序后的结果存入指定的文件。
      -r 以相反的顺序来排序。
      -t<分隔字符> 指定排序时所用的栏位分隔字符。
      +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。

    4. 以上方法没有找到问题所在,那么可以使用 lsof | grep deleted 命令,看看是否删除掉的文件仍然被进程占用而没有进行实际删除

    lsof命令说明

    lsof(List Open Files) 用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP),找回/恢复删除的文件。
    首先使用lsof来查看当前是否有进程打开/var/logmessages文件,如下:

    # lsof |grep /var/log/messages
    syslogd 1283 root 2w REG 3,3 5381017 1773647 /var/log/messages (deleted)
    

    相关文章

      网友评论

          本文标题:linux磁盘已满,查看文件占用

          本文链接:https://www.haomeiwen.com/subject/iwwhuctx.html