当前位置:  开发笔记 > 运维 > 正文

使用Linux中仅CLI的工具生成磁盘使用情况图表/图表

如何解决《使用Linux中仅CLI的工具生成磁盘使用情况图表/图表》经验,为你挑选了2个好方法。

在这个问题中,有人问到了在Linux中显示磁盘使用情况的方法.我想在cli-path中更进一步......如何将shell脚本从前一个问题的合理答案中获取输出并从中生成图形/图表(在png中输出)文件什么的)?在常规问题中可能要求的代码太多了,但我的猜测是有人已经在某个地方放置了一个oneliner ...



1> 小智..:

如果某些ASCII字符对你来说足够"图形",我可以推荐ncdu.这是一个非常好的交互式CLI工具,它可以帮助我在不使用cd bigdir的情况下降级大型目录.du -hs一遍又一遍.



2> dbr..:

我会推荐munin.它专为此类设计而设计 - 绘制CPU使用情况,内存使用情况,光盘使用情况等.有点像MRTG(但MRTG的主要目的是绘制路由器的流量图,除了带宽之外的任何东西都是非常hackish)

编写Munin插件非常容易(这是项目目标之一).它们几乎可以用任何东西编写(shell脚本,perl/python/ruby​​/etc,C,任何可以执行和生成输出的东西).插件输出格式基本上是disc1usage.value 1234.调试插件非常简单(与MRTG相比)

我已经在我的笔记本电脑上进行了设置,以监控光盘使用情况,带宽使用情况(通过我的ISP控制面板提取数据,绘制我的两个下载"垃圾箱",上传和新闻组使用情况),平均负载和进程数.一旦我安装了它(目前在OS X上稍微有些困难,但它在Linux/FreeBSD上是微不足道的),我在几分钟内编写了一个插件,它第一次运行了!

我会描述它是如何设置的,但是munin网站会比我做得更好!

这里有一个例子安装在这里

一些替代品是nagios和cacti.您也可以使用rrdtool编写类似的东西.Munin,MRTG和Cacti基本上都是基于此图形工具的更好用的系统.

如果你想要一些非常简单的东西,你可以做到......

import os
import time
while True:
    disc_usage = os.system("df -h / | awk '{print $3}'")
    log = open("mylog.txt")
    log.write(disc_usage + "\n")
    log.close()
    time.sleep(60*5)

然后..

f = open("mylog.txt")
lines = f.readlines()

# Convert each line to a float number
lines = [float(cur_line) for cur_line in lines]

# Get the biggest and smallest
biggest = max(lines)
smallest = min(lines)

for cur_line in lines:
    base = (cur_line - smallest) + 1 # make lowest value 1
    normalised = base / (biggest - smallest) # normalise value between 0 and 1
    line_length = int(round(normalised * 28)) # make a graph between 0 and 28 characters wide
    print "#" * line_length

这将是一个简单的光盘使用的ascii图.我真的不建议你使用这样的东西.为什么?日志文件将变得更大,更大,更大.图表将逐渐变慢.RRDTool使用滚动数据库系统来存储它的数据,因此文件永远不会超过大约50-100KB,并且由于文件是固定长度,因此它可以快速绘制图形.

简而言之.如果你想要的东西轻松地绘制几乎所有的东西,使用穆宁.如果你想要一些小而且自足的东西,可以用RRDTool写一些东西.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有