长时间读者,第一次问问:
我是一名初级Linux管理员,他越来越多地支持本地和中国的大型数据集/商店. NFS存储.数据通常是大量文件夹和数据的形式.文件树具有任意名称.举一个挑战的例子,我正在使用包含数十万个嵌套目录和数千万个文件的20 TB分区.
由于这些分区/导出是共享资源,我通常必须在他们开始耗尽空间或inode时扮演侦探,以确定哪些文件夹是最大的违规者.
我发现’du -s’太慢而且手动无法完成这项工作,并希望看到其他人使用什么技巧来确定最大或最多的文件数目dirs是非常大的分区.
我唯一关心进行这些搜索的操作系统是RHEL 5/6,因此任何标准CLI Linux工具的组合都可以.
谢谢!
解决方法
如果完全可行的话,我建议将数据分成多个分区.无论您使用什么工具,扫描这么多文件都需要时间.如果它位于不同的分区上,您至少可以将问题缩小到单个分区.但这可能不是你正在做的选择.
du可能是您寻找的最佳工具.这是我如何使用它:
如果您的目录结构如下所示:
/mount/1/abc/123/456/789,/mount/1/def/stuff/morestuff/evenmorestuff /mount/2/qwer/wer/erty
我会跑:
du -s /mount/*/* | sort -n
这将为您提供每个二级目录的总使用量,按大小排序.如果需要很长时间才能运行,请将其指向文件并在一夜之间运行.
您的输出将如下所示:
10000 /mount/1/abc 20000 /mount/1/def 23452 /mount/2/qwer
那么你只希望将它分解得足以看出问题点在哪里.
如果这是一个常见问题,您可以让它在系统不忙的时候每晚运行该命令,并将输出保存到文件中.然后,当您发现问题时,您会立即查看一些最新数据.
您可能希望查看的另一个选项是配额 – 如果这是共享存储并且它们都使用不同的用户帐户,则设置非常高的配额可能有助于防止失控进程使用大量存储空间.