#!/bin/bash
#查找占用空间比较大的文件以及目录

#查找占用空间比较大的目录,从根开始查找, 只显示一层, 对结果排序
du -h --max-depth=1 / | sort -nr

#查找占用空间比较大的文件,从根开始查找,并显示详细大小,对结果进行排序
find / -type f -size +800M  -print0 | xargs -0 du -h | sort -nr

#查找data目录下的大文件
find /data -type f -size +800M  -print0 | xargs -0 du -h | sort -nr

#查找指定目录下 指定时间段的文件 并显示详情
find /data -name '*.jpg' -newermt '2019-10-11 04:50' ! -newermt '2019-10-11 05:10' | xargs ls -lh

#查找指定目录深度,以G或者T为单位的占用磁盘空间的大目录,并排序
du -h -d 2|grep [GT] |sort -nr
du -h --max-depth=2|grep [GT] |sort -nr

find / -type f -size +1G -exec du -h {} \;

#从效率上来说,find要比du要更快速、灵活


#查看被删除,磁盘空间并未释放的文件
lsof +L1


磁盘空间的保护机制

Used和Avail加起来不够Size,莫名被吃掉一部分

其实这是Linux文件系统的一种安全策略,它默认会为root用户保留5%的磁盘空间,留作紧急情况使用。这样能保证有些关键应用(比如数据库)在硬盘满的时候有点余地,不至于马上就 crash

我们可以通过tune2fs修改预留空间的比例

tune2fs -m 1 /dev/vda1

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐