IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

小心grep 的buffer

PHPor 的blog 2012-01-24 14:01:13 累计浏览 4,166 次
本机暂存
在统计mysql查询次数时,有如下命令:

 while :; do sleep 1;  mysql -u user -ppass -h phpor.net -P 3306 -e 'show status like "Questions";'; done |grep Ques | awk '{print $2 - old; old = $2; }'

几秒钟后都看不到结果,怀疑是awk的buffer造成的,于是改写为:
 while :; do sleep 1;  mysql -u user -ppass -h phpor.net -P 3306 -e  'show status like "Questions";'; done |grep Ques | awk  '{print $2 - old; old = $2; fflush();}'

依然不行,于是,把该命令推到后台,使用strace跟踪了一下awk,发现awk没有读到内容,很自然地,跟踪grep吧,发现grep read到内容了,但是总是不write,开始怀疑我的 Ques写错了,仔细比对,也没有问题呀,突然,屏幕上打印出了很多信息,于是,我恍然大悟,应该是grep的buffer搞的鬼,于是man了一下grep,果然有这方面的选项,再次修改如下:

 while :; do sleep 1;  mysql -u user -ppass -h phpor.net -P 3306 -e  'show status like "Questions";'; done |grep --line-buffered Ques | awk  '{print $2 - old; old = $2; fflush();}'

终于OK了

同分类推荐文章

  1. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)
  2. WARNING: detected duplicate paths to the same disk导致crs无法正常启动故障解决 (2026-05-24 22:24:49)
  3. Terraform 极简入门:从 AWS-CLI 到基础设施即代码(IaC) (2026-05-20 08:00:00)

查看更多 DevOps 文章 →

建议继续学习

  1. 用Hyer来进行网站的抓取 (累计阅读 158,168)
  2. MySQL数据库在实际应用一些方面的介绍 (累计阅读 36,327)
  3. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,086)
  4. Bash的模式和配置文件加载 (累计阅读 24,341)
  5. Mysql监控指南 (累计阅读 21,218)
  6. WEB系统需要关注的一些点 (累计阅读 17,897)
  7. 28个Unix/Linux的命令行神器 (累计阅读 16,691)
  8. 由浅入深探究mysql索引结构原理、性能分析与优化 (累计阅读 16,192)
  9. 批量添加主机到cacti+nagios的监控报警系统中 (累计阅读 14,790)
  10. 我常用的主机监控shell脚本 (累计阅读 13,275)