面试官问:实际工作中如何用linux查看日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 作为开发项目出了bug想要最快速定位到问题所在,查看日志是最好不过的了~(当然,也要习惯在业务关键点设置日志),我们来看看最常用的查看日志的方法。

作为开发项目出了bug想要最快速定位到问题所在,查看日志是最好不过的了~(当然,也要习惯在业务关键点设置日志),我们来看看最常用的查看日志的方法。

实时日志:tail -f XXX.log

搜索关键字附近日志:cat -n filename | grep "关键字"

一、下面是查看日志的常用几种命令和方式:

tail:

-n  是显示行号;相当于nl命令;例子如下:

    tail -100f test.log      实时监控100行日志

    tail  -n  10  test.log   查询日志尾部最后10行的日志;

    tail -n +10test.log    查询10行之后的所有日志;

head:  

跟tail是相反的,tail是看后多少行日志,而head是查看日志文件的头多少行,例子如下:    head -n 10  test.log   查询日志文件中的头10行日志;    head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;

cat:

  tac是倒序查看,是cat单词反写;例子如下:       cat -n test.log|grep "debug"   查询关键字的日志(常用!~)

vim:

1、进入vim编辑模式:vim filename         2、输入“/关键字”,按enter键查找         3、查找下一个,按“n”即可         退出:按ESC键后,接着再输入:号时,vi会在屏幕的最下方等待我们输入命令         wq! 保存退出         q! 不保存退出

二、查看日志几种常见的应用场景

场景一:按行号查看:过滤出关键字附近的日志

(1) cat -n test.log|grep "debug"  得到关键日志的行号(2) cat -n test.log|tail -n +92|head -n 20  选择关键字所在的中间一行. 然后查看这个关键字前10行和后10行的日志:            tail -n +92表示查询92行之后的日志             head -n 20 则表示在前面的查询结果里再查前20条记录

场景二:根据日期查询日志

(1) sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效 先 grep '2014-12-17 16:17:20'test.log 来确定日志中是否有该时间点

场景三:日志内容特别多,打印在屏幕上不方便查看,分页/保存文件查看

(1)使用more和less命令,           如: cat -n test.log|grep "debug" |more     这样就分页打印了,通过点击空格键翻页 (2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析             如:cat -n test.log|grep "debug"  >debug.txt

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6天前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
24 7
|
9天前
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
|
2月前
|
存储 JSON 网络协议
Docker面试整理-如何查看和管理Docker容器的日志?
通过本文的介绍,我们了解了如何查看和管理Docker容器的日志,包括使用 `docker logs`命令、配置日志驱动、设置日志选项和集中日志管理。掌握这些技能,不仅可以在面试中展示专业水平,也能在实际工作中高效
222 3
|
2月前
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
37 7
|
3月前
|
SQL 存储 关系型数据库
美团面试:binlog、redo log、undo log的底层原理是什么?它们分别实现ACID的哪个特性?
老架构师尼恩在其读者交流群中分享了关于 MySQL 中 redo log、undo log 和 binlog 的面试题及其答案。这些问题涵盖了事务的 ACID 特性、日志的一致性问题、SQL 语句的执行流程等。尼恩详细解释了这些日志的作用、所在架构层级、日志形式、缓存机制以及写文件方式等内容。他还提供了多个面试题的详细解答,帮助读者系统化地掌握这些知识点,提升面试表现。此外,尼恩还推荐了《尼恩Java面试宝典PDF》和其他技术圣经系列PDF,帮助读者进一步巩固知识,实现“offer自由”。
美团面试:binlog、redo log、undo log的底层原理是什么?它们分别实现ACID的哪个特性?
|
3月前
|
监控 网络协议 安全
Linux系统日志管理
Linux系统日志管理
65 3
|
3月前
|
存储 SQL 关系型数据库
面试官:你能聊聊 binlog、undo log、redo log 吗?
本文详细解析了MySQL数据库中的三种日志:binlog、undo log和redo log。binlog用于记录数据库的所有表结构变更及数据修改,支持归档、主从复制和数据恢复;undo log用于事务回滚,确保事务的原子性和实现多版本控制;redo log则用于crash-safe,确保数据库异常重启后已提交记录不丢失。文章通过实例和图表,深入浅出地介绍了每种日志的特点、应用场景及其实现机制。适合数据库开发者和运维人员阅读。
228 2
|
5月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
146 1
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
3月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
74 0
|
3月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
49 0