2010-07-15 66 views
5

我想使用列實用程序格式輸出iostat在對齊的列。vmstat和列

我要運行是這樣的:

vmstat 1 10 | column -t 

但產量僅appers 10秒後信息(vmstat完成其工作),而不是每一秒。

任何想法?

回答

3

發生這種情況的原因是,列等待收集儘可能多的輸入,以便根據其列猜測作爲基礎。它無法知道數據模式每秒重複一次。

可以接近你想要做什麼,運行以下:

for i in 0 1 2 3 4 5 6 7 8 9; do iostat | column -t; sleep 1; done 

編輯

感謝丹尼斯夫婦的建議:

for i in {0..9} ; do iostat 1 1 | column -t; sleep 1; done 

的與原來唯一的區別在於第一個heade r線每秒重複一次。使用sedgrep的一些步法可以解決這個問題。

+0

對於vmstat的使用您的建議,您可以運行「的vmstat | sed的-n '1,2p' | column -t; for i in 0 1 2 3 4 5 6 7 8 9; do vmstat | column -t | sed -n'3p'; sleep 1; done「,它給出類似的格式化輸出到」vmstat 1 10 」。真的沒有辦法簡單地做到這一點嗎? – dimba 2010-07-15 22:04:31

+1

@idimba:在Bash中,你可以在{0..9}'中爲我做'。你可以在兩個地方執行'vmstat 1 1'。 – 2010-07-16 00:34:47

+0

@idimba:對不起,我不熟悉vmstat格式,所以我不知道你是如何想看看標題的。我認爲丹尼斯的建議使其非常簡單。我會編輯我的答案以反映我們的最佳努力。 – 2010-07-16 07:08:18

0

我想這是你試圖完成:

vmstat 1 10 | while read line 
do 
    echo "$line" | column -t 
done 
+0

這將只在每次迭代中運行一次'column -t',因此跨輸出「行」的格式將不會被解決。 – slm 2015-05-12 14:00:48

-1

試試這個

vmstat 1 10 >> /tmp/vmout.txt; tail -f /tmp/vmout.txt