In this question有人要求提供在Linux中顯示磁盤使用情況的方法。我希望進一步沿着cli路徑走一步......如何從一個合理的答案獲取輸出到上一個問題的shell腳本,並從中生成一個圖形/圖表(輸出爲png文件或其他)?這可能是有點太多的代碼在常規的問題要問的,但我的猜測是,有人已經擁有oneliner某處周圍鋪設...在Linux中使用CLI生成磁盤使用情況圖表/圖表
回答
我會推薦munin。它專門用於這類事情 - 繪製CPU使用率,內存使用情況,磁盤使用情況等。有點像MRTG(但MRTG主要是爲了繪製路由器的流量,繪製任何東西,但帶寬與它是非常hackish)
寫Munin插件是非常容易的(這是項目的目標之一)。它們幾乎可以寫入任何東西(shell腳本,perl/python/ruby/etc,C,任何可以執行併產生輸出的東西)。插件輸出格式基本上是disc1usage.value 1234
。和調試插件是非常容易的(與MRTG相比)
我已經在我的筆記本電腦上設置了它來監控磁盤使用情況,帶寬使用情況(通過從我的ISP控制面板中提取數據,它將我的兩個下載「 「,上傳和新聞組使用情況),加載平均數和進程數。一旦我安裝了它(目前在OS X上稍微有些困難,但是在Linux/FreeBSD上很簡單),我幾分鐘後就寫了一個插件,並且它第一次運行!
我會描述它是如何設置的,但是這個munin站點會做的比我更好!
這裏有一個例子安裝here
一些替代品的Nagios和仙人掌。你也可以使用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,並且由於該文件是固定長度,所以它始終快速地繪製圖形。
總之。如果你想要一些東西來輕鬆繪製幾乎任何東西,請使用munin。如果你想要一些小而獨立的東西,用RRDTool寫一些東西。
我想有幾個選項:
對於純粹的CLI解決方案,請使用諸如gnuplot之類的東西。例如使用here。我因爲我的學生時代還沒有使用的gnuplot :-)
不是一個真正的純CLI解決方案,但下載的東西像JFreeChart,寫一個簡單的Java應用程序,讀取標準輸入,並創建圖表。
希望這會有所幫助。
我們在工作中使用RRDtool(數據存儲後端工具,如MRTG)推出自己的工作。我們每5分鐘運行一次perl腳本,每個分區需要一個du,並將其填充到RRD數據庫中,然後使用RRD的圖形函數來構建圖形。需要一段時間才能確定如何設置.rrd文件(例如,我必須重新學習RPN才能完成一些我想要做的計算),但如果您有一些數據需要隨時間變化, RRD工具是一個很好的選擇。
如果某些ASCII字符對您來說足夠「圖形」,我可以推薦ncdu。這是一個非常好的交互式CLI工具,它可以幫助我在不使用cd bigdir的情況下降低大型目錄;一次又一次地重複着。
- 1. SQLite表磁盤使用情況
- 2. VB.NET:監控磁盤使用情況
- 3. netbeans優化磁盤使用情況
- 4. Linux服務器不能正確顯示磁盤使用情況
- 5. 如何根據linux中的文件使用情況優化磁盤使用情況?
- 6. 使用生成圖表與子圖SPARQL
- 7. CLI - 使用磁盤參數時出錯
- 8. 如何使用hazelcast處理分佈式磁盤到磁盤的各種情況?
- 9. DataDog中的容器磁盤使用情況
- 10. 查找磁盤中某個目錄的使用情況%
- 11. 可可API用於磁盤空間使用情況分解
- 12. linux命令查找遠程Windows計算機上的磁盤使用情況
- 13. Android圖表庫能夠在不顯示圖表的情況下生成PNG
- 14. 使用birt,jsf和jsf4birt生成報表和生成圖表
- 15. 使用mysql數據生成Google圖表
- 16. Linux內存使用情況
- 17. 表使用的Oracle磁盤空間
- 18. 表使用過多的磁盤空間
- 19. Hadoop的多卷和限制磁盤使用情況
- 20. ElasticSearch查找磁盤空間使用情況
- 21. Shell腳本查找目錄的磁盤使用情況
- 22. Google Cloud Stackdriver監視器計算引擎磁盤使用情況
- 23. 從SoftLayer API獲取磁盤使用情況
- 24. 典型的Hive和Hadoop磁盤Spaware使用情況
- 25. 計算並顯示磁盤使用情況
- 26. 使用iText,在內存上生成在磁盤上生成的PDF代替
- 27. 如何使用MySQL記錄Windows 7網絡流量和磁盤使用情況?
- 28. Couchbase數據/磁盤使用情況以及RAM /配額使用數據
- 29. 如何在不使用磁盤存儲的情況下在python中加載圖像?
- 30. 在SharePoint中生成圖表
+1遠程管理的完美增強!喜歡這個工具,超快速的使用和刪除工作流程! – barrymac 2012-03-08 17:40:59