Linux下“减速”查看日志的方法
需求场景
今天查看日志,有个需求,需要按照指定“速率”输出日志信息到终端屏幕上,方便查看。
这个需求日常应该也经常会碰到,比如以下两种情况:
- 场景1:需要快速浏览下日志中有没有异常信息,但是又不想刷新太快来不及看;
- 场景2:需要实时查看日志信息(从日志尾部开始,监控更新后日志),但是刷新太快,看不清楚;
解决方案
相关中文资料没有找到,在StackExchange找到了一些参考的方法,比较有借鉴意义。
以下是整理的几种比较可行的one-liner方法,供参考。
另外,根据我的试验,0.2秒是一个比较舒服的慢速打印的刷新速率。
# 使用perl 每隔0.2秒打印一行
## 优点:Linux环境都有perl
## 缺点:大部分人不熟悉perl了,而且每次暂停都是调用系统sleep命令
场景1:perl -pe "system 'sleep .2'" log.txt
场景2:tail -f log.txt | perl -pe "system 'sleep .2'"
# 使用awk 每隔0.2秒打印一行
## 优点:Linux环境都有awk,也比较好记忆
## 缺点:每次暂停都是调用系统sleep命令
场景1:awk '{print $0; system("sleep 0.2")}' log.txt
场景2:tail -f log.txt | awk '{print $0; system("sleep 0.2")}'
# 使用ruby 每隔0.2秒打印一行
## 优点:使用ruby内置sleep函数;
## 缺点:Linux环境默认没有ruby
场景1:ruby -pe 'sleep 0.2' log.txt
场景2:tail -f log.txt | ruby -pe 'sleep 0.2'