爲什麼iostat的輸出不重定向到文件中的以下命令:iostat的重定向輸出到文件
iostat -x 3 | awk '/sda/ { print $11, $12}' > /tmp/disk_utilization
是iostat的行爲不同於任何其他命令?提前
爲什麼iostat的輸出不重定向到文件中的以下命令:iostat的重定向輸出到文件
iostat -x 3 | awk '/sda/ { print $11, $12}' > /tmp/disk_utilization
是iostat的行爲不同於任何其他命令?提前
THX看起來你需要添加一個計數告訴流時終止(man iostat)。你只需要添加的時間間隔:
If the interval parameter is specified without the count parameter, the iostat command generates reports continuously.
當我嘗試:
iostat -x 3 6 | awk '/sda/ { print $11, $12}' > outfile
的6
告訴iostat
後3秒間隔6次迭代停止。迭代iostat
完成後,我得到一個output
文件。
或者,您可以選擇一些表達式來導致awk腳本退出。當我嘗試:
iostat -x 3 | awk -v max=10 '/sda/ { print $11, $12; max++ } NR > max { exit } ' > outfile2
我得到的只是3線output2
這是有意義的,因爲iostat -x
生產約一個屏幕值得行輸出到屏幕。
你也可能會迫使awk來fflush(stdout)
在每個印刷週期:
iostat -x 3 | awk '/sda/ { print $11, $12; fflush(stdout) }' > output3
然後關閉iostat
,從殼體一個<ctrl+c>
。
問題的原因是管道被緩衝(可能爲4k
),所以如果您等待足夠長的時間輸出被刷新到文件中,它將不再爲空。
我的iostat版本沒有'-x'標誌。否則我無法再現這個問題。 – kojiro
在Mac OSX上也是如此。 –
小次郎和馬克,你們如何阻止iostat? CTRL + C?你看到文件重定向到的東西嗎? –