Linux查看log日志命令的方式总结

 更新时间:2025年02月14日 10:48:23   作者:赵广陆  
本文介绍了如何在Linux环境下查看和分析日志文件,包括使用`tail`、`grep`、`less`和`vim`等命令,以及如何通过Docker获取容器日志

动态实时查看日志

企业项目都运行在Linux环境,熟悉Linux环境下的日志查看结合远程调试端口及时排查程序bug,是后端程序员需掌握的必备技能。

Tail the log file是运维同学的口头禅,tail命令是最常用的查看日志语句,以日志文件server.log为例

1.tail -f filename

tail -f server.log实时展示日志末尾内容,默认最后10行,相当于增加参数 -n 10

tail -f server.log

退出tail命令

Ctrl+c

tail命令扩展

查看日志最后20行内容并实时更新日志

tail -f -n 20 server.log

查看日志正数20行内容

tail -n +20 server.log

2.追踪特定内容日志

tail 命令可以实时查看文件内容的变化。但是当项目日志实时更新内容特别多时,需要查看的列往往时一闪而过,在快速更新的大量日志中查询关键列非常不方便,这是就需要tail命令与grep命令连用。

追踪需要展示的特定信息,以查看固定线程http-nio-8091-exec-7为例:

tail -f log_file | grep ‘http-nio-8091-exec-7'

扩展内容

-C 选项来显示检索结果的前后几行,-A 选项展示检索结果后几行,-B选项展示检索结果前几行

tail -f log_file | grep -C 5 ‘http-nio-8091-exec-7'

cat关键字搜索

cat 区别于tail是对日志进行全文搜索,其中-n的作用是显示行号

cat -n filename |grep “http-nio-8091-exec-7”

扩展内容

-C 选项来显示检索结果的前后几行,-A 选项展示检索结果后几行,-B选项展示检索结果前几行

cat -n log_file | grep -C 5 ‘http-nio-8091-exec-7'

查看整体的日志操作

1.less命令

less 命令多用于读取文本文件,也可用于读取实时被更改的文件。ctrl +c 中断实时读取显示,按 q 会退出less视图

选项 +F 可以实时跟踪文件的更改:

less +F log_file
  • 第一步:打开日志文件
less sigma.log
  • 第二步:定位到日志文件的最后一行:
shift+g 移动到最后一行
  • 第三步:
ctrl+b 往前一页一页翻页查看

参考:

1.全屏导航

  • ctrl + F - 向前移动一屏
  • ctrl + B - 向后移动一屏
  • ctrl + D - 向前移动半屏
  • ctrl + U - 向后移动半屏

2.单行导航

  • j - 向前移动一行
  • k - 向后移动一行

3.其它导航

  • G - 移动到最后一行
  • g - 移动到第一行
  • q / ZZ - 退出 less 命令

2.vim编辑模式查看日志

对于编辑模式操作日志文件,因为熟悉流程原因也不失为一个好方法

  • /关键字 注:正向查找,按n键把光标移动到下一个符合条件的地方
  • ?关键字 注:反向查找,按shift+n 键,把光标移动到下一个符合条件的

下载日志文件

1.获取docker中的容器编号

通过docker查看日志需要先知道docker中的容器编号CONTAINER ID

通过命令sudo docker ps或者sudo docker container ls -a任意一个都可以

2.进入到我们的项目中,会有个日志文件,记录我们所需要的日志文件的名字路径 

sudo docker exec -it CONTAINER ID sh

3.退出docker容器 

exit

4.把容器里第2步查出来的文件路径的文件拷贝到服务器里的任一目录上

sudo docker container cp CONTAINER ID:/opt/logs/2020-02/zjapp-2020-02-10.log /home/brain/zjapp-2020-02-10.log

这里比较麻烦,还是希望一开始就可以挂载好服务器目录文件

或者使用远程连接工具拖拽下载

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux工具之Nethogs按进程监控网络带宽的安装部署

    Linux工具之Nethogs按进程监控网络带宽的安装部署

    NetHogs是一个小型的net top工具,不像大多数工具那样拖慢每个协议或者是每个子网的速度而是按照进程进行带宽分组,这篇文章主要介绍了Linux工具Nethogs按进程监控网络带宽,值得收藏,需要的朋友可以参考下
    2019-07-07
  • 如何监控 Linux 服务器状态的方法

    如何监控 Linux 服务器状态的方法

    这篇文章主要介绍了如何监控 Linux 服务器状态的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • linux系统下如何挂载NTFS移动硬盘

    linux系统下如何挂载NTFS移动硬盘

    用命令行挂载移动硬盘是Linux的基本操作之一,虽然目前有些Linux系统能自动加载移动硬盘,但有些时候(比如使用Ubuntu Server或其它Linux系统的时候)仍然需要手动操作,下面这篇文章主要介绍了linux系统下如何挂载NTFS移动硬盘,需要的朋友可以参考借鉴。
    2017-01-01
  • linux 下的yum命令详解

    linux 下的yum命令详解

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。这篇文章给大家介绍linux 下的yum命令,需要的朋友参考下吧
    2016-12-12
  • 覆盖原先的PATH导致命令失效提示command not found的解决方法

    覆盖原先的PATH导致命令失效提示command not found的解决方法

    今天小编就为大家分享一篇关于覆盖原先的PATH导致命令失效提示command not found的解决方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • linux用户source .bashrc或.profile找不到文件的解决

    linux用户source .bashrc或.profile找不到文件的解决

    这篇文章主要介绍了linux用户source .bashrc或.profile找不到文件的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 详解Linux系统中的tempfs与/dev/shm

    详解Linux系统中的tempfs与/dev/shm

    /dev/shm是Linux非常有用的一个目录,它就是所谓的tmpfs,也可以称之为临时文件系统(不是块设备),类似oracle中的临时表空间一样,用于加速和优化系统。下面这篇文章主要给大家介绍了Linux系统中tempfs与/dev/shm的相关资料,需要的朋友可以参考下。
    2017-02-02
  • Linux命令行删除文件实操方法

    Linux命令行删除文件实操方法

    在本篇文章里小编给大家整理了一篇关于Linux命令行删除文件实操方法和技巧,需要的朋友们学习下。
    2019-03-03
  • centos7系统部署k8s集群详细介绍

    centos7系统部署k8s集群详细介绍

    大家好,本篇文章主要讲的是centos7系统部署k8s集群详细介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Linux中实现线程同步的6种方法

    Linux中实现线程同步的6种方法

    本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例代码展示了如何在多线程环境中正确地管理共享资源,确保线程安全,需要的朋友可以参考下
    2024-11-11

最新评论