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'

Linux下“减速”查看日志的方法的更多相关文章

  1. Linux 下实时查看日志

    Linux 下实时查看日志 cat /var/log/*.log 如果日志在更新,如何实时查看 tail -f /var/log/messages 还可以使用 watch -d -n 1 cat /v ...

  2. linux几种查看日志的方法

    linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档 ...

  3. Linux下SVN的一些使用方法总结

    Linux下SVN的一些使用方法总结   近期的一个项目不方便 Check 到本地,需要在测试服务器上进行编写和测试,所以就研究了一下如何在 Linux 命令行下使用 SVN. 首先 svn help ...

  4. Linux下Git和GitHub使用方法总结

    来源:Linux下Git和GitHub使用方法总结 1 Linux下Git和GitHub环境的搭建 第一步: 安装Git,使用命令 “sudo apt-get install git” 第二步: 到G ...

  5. 在linux下,查看一个运行中的程序, 占用了多少内存

    1. 在linux下,查看一个运行中的程序, 占用了多少内存, 一般的命令有 (1). ps aux: 其中  VSZ(或VSS)列 表示,程序占用了多少虚拟内存. RSS列 表示, 程序占用了多少物 ...

  6. linux下执行.sh文件的方法和语法

    linux下执行.sh文件的方法    .sh文件就是文本文件,如果要执行,需要使用chmod a+x xxx.sh来给可执行权限.       是bash脚本么   可以用touch test.sh ...

  7. Linux下内存查看命令

    在Linux下面,我们常用top命令来查看系统进程,top也能显示系统内存.我们常用的Linux下查看内容的专用工具是free命令. Linux下内存查看命令free详解: 在Linux下查看内存我们 ...

  8. linux下常用的日志分析命令

    linux下常用的日志分析命令   本文介绍下,在linux中常用的一些分析日志的命令行或脚本,有需要的朋友参考下.     形如下面这样的access.log日志内容: 211.123.23.133 ...

  9. [转载]linux下如何查看系统和内核版本

    原文地址:linux下如何查看系统和内核版本作者:vleage 1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version Linux version 2 ...

  10. linux下重新定位SVN URL方法

    linux下重新定位SVN URL方法:   如果更换了SVN服务器,就需要重新定位,指向新的SVN URL. 重新定位命令:svn switch --relocate 原svn地址 新svn地址   ...

随机推荐

  1. C++ 自学笔记 new和delete(动态内存分配)

    动态内存分配 Dynamic memoey allocation C++使用new和delete 来申请和释放内存 new:先申请一个空间 int\Stash : 默认构造函数初始化对象 ~:析构函数 ...

  2. C#-11 接口

    一 什么是接口 接口是指定一组函数成员而不实现它们的引用类型. class Program { static void FlyFunc(IFly obj) { obj.Fly(); } static ...

  3. Linux下多线程创建

    1.pthread_create Linux中线程创建用pthread_create函数 #include <pthread.h> int pthread_create( pthread_ ...

  4. 手把手教你玩转 Gitea|使用 Helm 在 K3s 上安装 Gitea

    前言 在前面的文章中,演示了如何用 Docker 镜像和 Windows 二进制包来安装运行 Gitea.今天是玩转 Gitea 系列的使用 Helm 在 K3s 上安装 Gitea. 关于 Gite ...

  5. Linux自动切换用户

    Linux自动切换用户 一.创建sh文件 touch su_user.sh 二.下载脚本 yum install -y expect 三.脚本内容 #!/bin/bash# This is our f ...

  6. iOS开发之自定义日历控件

    前言 日常开发中经常会遇到日期选择,为了方便使用,简单封装了一个日历控件,在此抛砖引玉供大家参考. 效果 功能 支持单选.区间 支持默认选中日期 支持限制月份 支持过去.当前.未来模式 支持frame ...

  7. Pycharm系列---QT配置

    PYSIDE2 添加外部工具 file---settings External Tools,点击左上角的 加号+ designer 位置: envs\QT6\Lib\site-packages\PyS ...

  8. ubuntu基本

    ubuntu使用过程中遇到的指令 apt-get更新 当现出net-tools没有可安装候选 的提示时,可能是apt-get需要更新了.通过指令sudo apt install net-tools p ...

  9. 《吐血整理》高级系列教程-吃透Fiddler抓包教程(33)-Fiddler如何抓取WebSocket数据包

    1.简介 本来打算再写一篇这个系列的文章也要和小伙伴或者童鞋们说再见了,可是有人留言问WebSocket包和小程序的包不会抓,那就关于这两个知识点宏哥就再水两篇文章. 2.什么是Socket? 在计算 ...

  10. 第一百零七篇:基本数据类型(undefined,null,boolean类型)

    好家伙, 本篇内容为<JS高级程序设计>第三章学习笔记 1.数据类型 ECMAScript有6种简单数据类型(称为原始类型): Undefined, Null, Boolean, Numb ...