实时识别磁盘空间已满的位置

实时识别磁盘空间已满的位置

我安装了一个 5TB RAID 卷,并且/data它始终接近 100% 满。目前已满 99%,表示 68GB 可用du -sh

它达到 100%,用户无法写入它,我们清除一些数据可能会释放 100GB 左右,无论多久都很好。过程重复。

我的问题是,作为具有 root 访问权限的管理员,有没有一种方法可以识别我下面的哪些文件夹/data被写入最多,以便我可以了解谁或哪些活动正在系统上积极工作,创建最多的数据磁盘满了?

它是一个 XFS 文件系统。布局基本是这样的

/data
/data/Project1/
/data/Project2/
/data/Project_n/
/data/users/
/data/users/x001/
/data/users/x002/
/data/users/x00_n/

我只想找到最近哪个项目# 或哪个用户 x# 文件夹一直在增长。这就是我需要进入 /data 下的文件夹树的深度。

答案1

阅读man lsof并做类似的事情

sudo lsof +D / data

答案2

该命令将显示目录中每个目录的磁盘使用情况摘要/数据/目录树。

# find /data/* -type d -exec du -sh {} \; | sort -hr

该命令将显示目录中最大的 10 个目录/数据/目录树。

# find /data/* -type d -exec du -sh {} \; | sort -hr | head

显示文件在/数据/25M或更大的目录树

# find /data/ -size +25M -exec ls -l {} \; | sort -nr -k5

答案3

一个方便的交互式工具用于检查正在使用磁盘空间的内容(并且可以在使用时进行清理)ncdu(即 ncurses du)。

在 Debian/Ubuntu 上通过 apt 安装(应该在大多数(如果不是全部)发行版的存储库中)。

在您的情况下(假设您的用户具有完全读取权限),请像这样运行它:

ncdu /data

扫描需要一段时间,但随后会按大小顺序显示。您可以深入查看目录并随时删除文件/目录。

相关内容