首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将iostat输出重定向到文件

将iostat输出重定向到文件
EN

Stack Overflow用户
提问于 2014-02-27 14:43:44
回答 2查看 9K关注 0票数 1

为什么iostat的输出没有重定向到以下命令中的文件:

代码语言:javascript
复制
iostat -x 3 | awk '/sda/ { print $11, $12}' > /tmp/disk_utilization 

iostat的行为是否与任何其他命令不同?

Thx预先

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-27 15:12:02

看起来您需要添加一个计数来告诉流何时终止( man iostat )。您只是在增加间隔:

代码语言:javascript
复制
If the interval parameter is specified without the count parameter, the iostat command generates reports continuously. 

当我尝试:

代码语言:javascript
复制
iostat -x 3 6 | awk '/sda/ { print $11, $12}' > outfile

6告诉iostat在3秒钟的6次迭代之后停止。迭代之后,iostat完成,我得到一个output文件。

或者,您可以选择某个表达式来使awk脚本退出。当我尝试:

代码语言:javascript
复制
iostat -x 3 | awk -v max=10 '/sda/ { print $11, $12; max++ } NR > max { exit } ' > outfile2

我在output2中只有3行,这是有意义的,因为iostat -x产生了大约一行输出到屏幕的屏幕。

您还可以在每个打印周期中强制awk到fflush(stdout)

代码语言:javascript
复制
iostat -x 3 | awk '/sda/ { print $11, $12; fflush(stdout) }' > output3

然后从外壳中用一个iostat关闭<ctrl+c>

票数 5
EN

Stack Overflow用户

发布于 2014-02-27 15:18:38

造成问题的原因是管道被缓冲(可能是4k),所以如果等待足够长的时间将输出刷新到文件,它将不再是空的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22071817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档