2012-07-02 44 views
5

我正在嘗試創建一些容量規劃報告,其中一項要求是爲幾個Unix服務器提供有關內存使用情況的信息。將VMStat數據記錄到文件

現在我對Unix的知識很低。我通常只是登錄並運行一些腳本。

但是,對於本報告,我需要收集VMStat數據,並根據之前的前幾周按小時細分的數據生成報告,這是每10秒鐘獲取的Vmstat數據的平均值。

所以第一個問題:VMStat是否默認登錄,如果是的話,服務器上的什麼位置是數據輸出?

如果不是我該如何設置?

感謝

回答

9

vmstat是你運行一個命令。

要生成虛擬內存統計一週十週秒鐘的時間間隔(最後一少)隔開的60479點每隔10秒

所以,你要的命令是:

nohup vmstat 10 604879 > myvmstatfile.dat & 

這將做一個非常大的文件myvmstatfile.dat

編輯:RobKielty(該&會把這個工作的背景下,nohup將防止從任務絞死註銷命令外殼時啓動。如果你運行這個命令,監視這個文件被寫入的磁盤分區將是謹慎的。使用df -h /path/to/directory/where/outputfile/resides來監視磁盤空間的使用情況。)

我不知道你需要怎麼處理數據,所以我不能幫你。

創建條目(crontab -e命令)這樣

0 0 * * 0 /path/to/my/vmstat_script.sh 

文件vmstat_script.sh將包含後續的bash腳本命令。

#!/bin/bash 
# vmstat_script.sh 
vmstat 10 604879 > myvmstatfile.dat 
mv myvmstatfile.dat myvmstatfile.dat.`date +%Y-%m-%d` 

這將每週創建一個文件,像myvmstatfile.dat.2012-07-01

+0

@Rob Kielty一個名字 - 爲什麼這個樣子,我認爲它會爲70運行,而不是7天(604879×10÷60÷ 60÷24 = 70)?我錯過了什麼? –

+0

@MuhamedHuseinbašić我會除以10而不乘以10 –

+0

@RobKielty - 我仍然不明白。這行:vmstat 10 604879表示每10秒輸出一行並在604879行後停止。所以如果對於1條線我們需要10秒,對於604879條線我們需要604879次10秒。這意味着腳本將運行6048790秒,這大約是。相當於70天。我在這裏犯了什麼錯誤? –