我不是在寻找工具。我希望编写出清晰的故障清单,因此可以将其发送给不知道如何执行此操作的VPS用户。
我一直在寻找一种通过Shell脚本收集有关磁盘使用情况的大量数据的方法。在我的工作中,很多人打电话问“为什么我的磁盘已满” 我运行du -h --max-depth = 1 |排序-rn,但这有点笨拙,我必须继续深入研究。...
我正在尝试通过如下这样的shell脚本细分磁盘使用情况:
**home/ is consuming 400GB of disk space**</br>
home/user1 120GB
home/user2 200GB
**var/ is using 100GB of disk space**
到目前为止,我提出了以下建议:
#!/bin/bash
for i in $(ls -d */ | grep -v proc);
do
printf "**** $i has the following breakdown ********\n"
du -h --max-depth=1 $i
done
如何为用户提供更清洁,更容易理解的磁盘使用情况细分方式?只是希望能够将用法包装在漂亮的粉红色蝴蝶结中并说“祝你好运”
答案 0 :(得分:2)
尝试尝试ncdu (NCurses Disk Usage),例如:
$ ncdu -q -x
选项:
-q Quiet mode. While scanning or importing the directory, ncdu will
update the screen 10 times a second by default, this will be
decreased to once every 2 seconds in quiet mode. Use this
feature to save bandwidth over remote connections.
还有
-x Do not cross filesystem boundaries, i.e. only count files and
directories on the same filesystem as the directory being
scanned.
答案 1 :(得分:2)
这是另一种解决方案。您可以使用tree以“树状”格式列出目录的内容。然后,可以将其与磁盘使用标志结合使用,以查看嵌套目录及其大小。
tree -L 2 --du -h
“-L”标志定义查询的深度或级别。
这将为您提供如下输出:
您甚至可以创建一个可以在浏览器中打开的xml文件,如下所示:
tree -L 2 --du -h -H s > disk_usage.html
然后您可以在浏览器中打开文件,输出将如下所示:
希望这会有所帮助!
答案 2 :(得分:0)
您的代码段是一个不错的开始,您无法在一行中完成此操作。 一些文件夹,您需要的深度> 1(主页),而另一些深度= 1(无功)