![实时识别磁盘空间已满的位置](https://linux22.com/image/176316/%E5%AE%9E%E6%97%B6%E8%AF%86%E5%88%AB%E7%A3%81%E7%9B%98%E7%A9%BA%E9%97%B4%E5%B7%B2%E6%BB%A1%E7%9A%84%E4%BD%8D%E7%BD%AE.png)
我安装了一个 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
扫描需要一段时间,但随后会按大小顺序显示。您可以深入查看目录并随时删除文件/目录。