为什么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?你看到文件重定向到的东西吗? –