当前位置 博文首页 > 韩超的博客 (hanchao5272):服务器磁盘爆满的问题定位流程与命令

    韩超的博客 (hanchao5272):服务器磁盘爆满的问题定位流程与命令

    作者:[db:作者] 时间:2021-09-05 16:18

    判断磁盘空间整体情况

    df -h:

    查看磁盘空闲情况,能够快速确认磁盘空间是否真的不足。

    [worker@11-22-33-44 ~]$ df
    文件系统           1K-块      已用      可用 已用% 挂载点
    /dev/sda2      747194920 110078560 637116360   15% /
    devtmpfs        32877752         0  32877752    0% /dev
    tmpfs           32887772        12  32887760    1% /dev/shm
    tmpfs           32887772   3310860  29576912   11% /run
    tmpfs           32887772         0  32887772    0% /sys/fs/cgroup
    /dev/sdb1      117162092 114175276   2986816   98% /ssd
    /dev/sda1         812780    155620    657160   20% /boot
    tmpfs            6577556         0   6577556    0% /run/user/10276
    tmpfs            6577556         0   6577556    0% /run/user/1000
    tmpfs            6577556         0   6577556    0% /run/user/10472
    [worker@11-22-33-44 ~]$ df -h
    文件系统        容量  已用  可用 已用% 挂载点
    /dev/sda2       713G  105G  608G   15% /
    devtmpfs         32G     0   32G    0% /dev
    tmpfs            32G   12K   32G    1% /dev/shm
    tmpfs            32G  3.2G   29G   11% /run
    tmpfs            32G     0   32G    0% /sys/fs/cgroup
    /dev/sdb1       112G  109G  2.9G   98% /ssd
    /dev/sda1       794M  152M  642M   20% /boot
    tmpfs           6.3G     0  6.3G    0% /run/user/10276
    tmpfs           6.3G     0  6.3G    0% /run/user/1000
    tmpfs           6.3G     0  6.3G    0% /run/user/10472
    
    • df: disk free,即:磁盘空闲情况。
    • -h: –human-readable,即:人类可读模式,以K,M,G为单位,提高信息的可读性。

    定位大目录或大文件所在

    du -h --max-depth=2

    查看磁盘占用情况,能够定位占用主要磁盘空间的目录或文件。

    [worker@11-22-33-44 ~]$ du -h --max-depth=1
    234M	./open-falcon
    20K	./.ssh
    2.9M	./docker_home
    58G	./_logs
    874M	./data
    14M	./sh_cron
    4.0K	./.oracle_jre_usage
    876K	./bin
    0	./scyFile
    0	./.pki
    59G	.
    [worker@11-22-33-44 ~]$ du -h --max-depth=2
    229M	./open-falcon/falcon-agent
    234M	./open-falcon
    20K	./.ssh
    2.9M	./docker_home
    57G	./_logs/service-a-prod
    0	./_logs/service-b-log
    0	./_logs/service-c-log
    36K	./_logs/service-d-prod
    157M	./_logs/service-e-prod
    29M	./_logs/service-f-prod
    105M	./_logs/service-h-prod
    58G	./_logs
    189M	./data/reader
    685M	./data/subscribe
    874M	./data
    14M	./sh_cron
    4.0K	./.oracle_jre_usage
    876K	./bin
    0	./scyFile/influxDB
    0	./scyFile
    0	./.pki/nssdb
    0	./.pki
    59G	.
    
    • df: disk usage,即:磁盘使用情况。
    • -h: –human-readable,即:人类可读模式,以K,M,G为单位,提高信息的可读性。
    • --max-depth=<目录层数>,即:向下显示目录层次的深度,超过指定层数的目录后,予以忽略。
    • 如果目录较多,可能难以快速定位大文件。

    du --block-size=MB --max-depth=2 |sort -k1 -n -r |head -n5

    按照大小倒序显示磁盘占用情况,能够快速定位占用主要磁盘空间的目录或文件。

    [worker@103-17-209-lg-201-k08 ~]$ du --block-size=MB --max-depth=2 |sort -k1 -n -r |head
    62929MB	.
    61645MB	./_logs
    61341MB	./_logs/sevice-a-prod
    916MB	./data
    718MB	./data/subscribe
    313MB	./open-falcon
    307MB	./open-falcon/falcon-agent
    198MB	./data/reader
    165MB	./_logs/sevice-b-prod
    111MB	./_logs/sevice-c-prod
    
    • --block-size=MB:以MB为单位显示磁盘占用情况,类似参数还有GBKB等。
    • sort -k1 -n -r:将第一列作为数字进行倒序排序。
    • head -n5:显示前5名。

    定位具体目录或文件

    查看指定目录下具体文件与目录占用的磁盘空间。

    ls -lhS

    [worker@11-22-33-44 ~]$ ls -lh /home/worker
    总用量 36M
    drwxrwxr-x   2 worker worker  105 6月  12 17:28 bin
    -rw-rw-r--   1 worker worker 234K 1月   8 11:21 body
    drwxrwxrwx   4 worker worker   35 2月  25 2017 data
    -rw-r--r--   1 worker worker  19M 8月  11 2018 demo-0.0.1-SNAPSHOT.jar
    drwxrwxr-x   2 worker worker   49 11月 24 2018 docker_home
    -rw-rw-r--   1 worker worker  18M 5月  12 2016 influxdb-0.13.0.x86_64.rpm
    drwxrwxr-x  14 worker worker 4.0K 4月  11 17:42 _logs
    drwxr-xr-x.  3 root   root     48 9月   6 2016 open-falcon
    drwxrwxr-x   3 worker worker   21 2月  27 2018 scyFile
    drwxrwxr-x   2 root   root   4.0K 2月  27 2017 sh_cron
    -rw-rw-r--   1 worker worker    0 5月  22 10:10 thread.05221010
    [worker@11-22-33-44 ~]$ ls -lhS /home/worker
    总用量 36M
    -rw-r--r--   1 worker worker  19M 8月  11 2018 demo-0.0.1-SNAPSHOT.jar
    -rw-rw-r--   1 worker worker  18M 5月  12 2016 influxdb-0.13.0.x86_64.rpm
    -rw-rw-r--   1 worker worker 234K 1月   8 11:21 body
    drwxrwxr-x  14 worker worker 4.0K 4月  11 17:42 _logs
    drwxrwxr-x   2 root   root   4.0K 2月  27 2017 sh_cron
    drwxrwxr-x   2 worker worker  105 6月  12 17:28 bin
    drwxrwxr-x   2 worker worker   49 11月 24 2018 docker_home
    drwxr-xr-x.  3 root   root     48 9月   6 2016 open-falcon
    drwxrwxrwx   4 worker worker   35 2月  25 2017 data
    drwxrwxr-x   3 worker worker   21 2月  27 2018 scyFile
    -rw-rw-r--   1 worker worker    0 5月  22 10:10 thread.05221010
    
    • lslist directory contents,即:列表显示目录内容。
    • -l:除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出。
    • -h: –human-readable,即:人类可读模式,以K,M,G为单位,提高信息的可读性。
    • -S--Sort,按照目录或文件大小进行倒序排序显示。
    • /home/worker:只显示指定目录的内容。
    cs