【Linux】日志命令行练习(持续更新)

news2024/12/25 12:13:59

文章目录

    • 前言
    • 环境
    • 情景
      • 1. 获取实时日志
      • 2. 关键字定位
      • 3. 关键字取并集
      • 4. 关键字取交集
      • 5. 关键字取差集
      • 6. 关键字实时日志捕获
      • 7. 关键词上下文打印
      • 8. 关键词滚动搜索
      • 9. 看最早的日志信息

前言

公司生产问题需要登录堡垒机排查。
没有日志平台的情况下,生产问题同样要求迅速响应,这里积累下常用的命令。

环境

  • Linux系统 本文是Centos7.9
  • 安装 Nginx
## 安装含有 nginx 的源
yum install epel-release

## 安装 nginx
yum install nginx -y

## 启动 nginx
/usr/sbin/nginx

## 开启防火墙 (80端口)
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

## 进入访问日志目录
cd /var/log/nginx 

浏览器(http)访问服务器,看到如下页面说明环境准备完成
在这里插入图片描述

情景

以 nginx 的访问日志作为例子,结合查询情景,练习对应的命令。

1. 获取实时日志

  • 获取实时日志,默认打印倒数10行历史日志
tail -f access.log
  • 获取实时日志,指定打印历史行数
## 带出5行历史日志
tail -5f access.log

## 效果同上
tail -n 5 access.log
  • 获取实时日志,屏蔽历史日志
tail -0f access.log

2. 关键字定位

  • less 命令, 看对应手册有一个结论:less 比 more 更强 (英语梗 less is more)
    less is more
  • 关键词检索
## grep 跟关键词
less access.log | grep '21:42'

3. 关键字取并集

##  \| 表达或的关系
less access.log | grep '21:42\|21:31'

4. 关键字取交集

##  连续使用 grep 可以做到交集的效果
less access.log | grep '21:42' | grep ''

5. 关键字取差集

## grep -v 表示过滤掉21:09所有记录,做到取差集的效果
less access.log | grep 'Safari' | grep -v '21:09'

6. 关键字实时日志捕获

## 只看Edg浏览器的实时访问记录
tail -0f access.log | grep 'Edg'

7. 关键词上下文打印

## -A 捕获到关键词所在行,并带出向后2行日志 (After)
less access.log | grep '/img/centos-logo' -A 2
## -B 捕获到关键词所在行,并带出前2行日志 (Before)
less access.log | grep '/img/centos-logo' -B 2
## -C 捕获到关键词所在行,并带出前后2行日志 (Before)
less access.log | grep '/img/centos-logo' -C 2

8. 关键词滚动搜索

  • 向前查找
## 进入less交互模式
less access.log 

## 跳转到文件最后的部分
shift + g 

## 键入向前查找命令
?

## 向前继续查找
n

## 退出交互界面
:q
  • 向后查找
## 进入less交互模式
less access.log 

## 跳转到文件最后的部分
shift + g 

## 键入向后查找命令
/

## 向后继续查找
n

## 退出交互界面
:q
  • 上下文翻阅
    上文介绍了向前和向后的查找方式,实际工作上需要来回看,使用 shirt + n 进行反向操作
    • 如果用 ? 向前查找,n 为向前查一个词 shirt + n 为向后查一个词
    • 如果用 / 向后查找, n 为向后查一个词 shirt + n 为向前查一个词

  • 结合 grep 缩小文本长度
## 同样执行less命令,可以继续使用上文的搜索技巧
less access.log | grep Chrome | less

9. 看最早的日志信息

一个比较有趣的命令 tac 来自于 cat

tac access.log | grep Edg

在这里插入图片描述
可以看到日志都被倒排了,最底部的即为最早的日志。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1461804.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

maven工程打包引入本地jar包

1、通过maven生成本地区仓库包 mvn install:install-file --settings D:\lkx\download\apache-maven-3.6.3\conf\settings.xml -Dfileaspose-cad-21.8.jar -DartifactIdaspose-cad -DgroupIdsystem.core -Dversion21.8 -Dpackagingjar -DgeneratePomtrue # --settings&#xf…

迈向三维:vue3+Cesium.js三维WebGIS项目实战--持续更新中

写在前面:随着市场对数字孪生的需求日益增多,对于前端从业者的能力从对框架vue、react的要求,逐步扩展到2D、3D空间的交互,为用户提供更紧密的立体交互。近年来前端对GIS的需求日益增多。本文将记录WebGIS的学习之旅,从…

回归分析中的异方差性

在简单线性回归或多元线性回归中,我们对误差项做了一些基本假设。 简单线性回归: 多元线性回归: 假设条件: 1.误差均值为零 2.误差具有恒定方差 3.误差不相关 4.误差呈正态分布 第2个假设称为同方差性,因此&…

【开源】JAVA+Vue.js实现大病保险管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统配置维护2.2 系统参保管理2.3 大病保险管理2.4 大病登记管理2.5 保险审核管理 三、系统详细设计3.1 系统整体配置功能设计3.2 大病人员模块设计3.3 大病保险模块设计3.4 大病登记模块设计3.5 保险审核模块设计 四、…

使用JDBC操作数据库(IDEA编译器)

目录 JDBC的本质 ​ JDBC好处 JDBC操作MySQL数据库 1.创建工程导入驱动jar包 2.编写测试代码 ​相关问题 JDBC的本质 官方(sun公司) 定义的一套操作所有关系型数据库的规则,即接口各个数据库厂商去实现这套接口,提供数据库驱动jar包我们可以使用这…

Docker Desktop 4.27.1 Windows 10 安装 教程

Docker Desktop 4.27.1 Windows 10 安装 版本要求windows 版本要求wsl 版本要求docker desktop 版本 安装首先确保系统版本符合要求前提下安装wsl安装 Dockers Desktop安装说明 安装问题docker Desktop 无法正常启动,提示wsl 相关信息wsl --install 执行输出帮助日志…

Stable Diffusion 模型下载:A-Zovya RPG Artist Tools(RPG 大师工具箱)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 A-Zovya RPG Artist Tools 模型是一个针对 RPG 训练的一个模型,可以生成一些 R…

【深度学习】微调Qwen1.8B

1.前言 使用地址数据微调Qwen1.8B。Qwen提供了预构建的Docker镜像,在使用时获取镜像只需安装驱动、下载模型文件即可启动Demo、部署OpenAI API以及进行微调。 github地址:GitHub - QwenLM/Qwen: The official repo of Qwen (通义千问) chat & pretr…

Maven的下载安装配置教程

一、简单了解一下什么是Maven Maven就是一款帮助程序员构建项目的工具,我们只需要告诉Maven需要哪些Jar 包,它会帮助我们下载所有的Jar,极大提升开发效率。 1.Maven翻译为“专家“, ”内行”的意思,是著名Apache公司下…

通过盲注脚本复习sqllabs第46关order by 注入

在MySQL支持使用ORDER BY语句对查询结果集进行排序处理,使用ORDER BY语句不仅支持对单列数据的排序,还支持对数据表中多列数据的排序。语法格式如下 select * from 表名 order by 列名(或者数字) asc;升序(默认升序) select * from 表名 or…

将一个 PostgreSQL 数据库复制到另一个数据库中

以管理员身份进入cmd窗口,输入如下命令 语法: pg_dump -C -h 本机IP -U 本机postgresql用户名 源数据库名 | psql -h 服务器IP -U 服务器postgresql用户名 目标数据库名 示例: pg_dump -C -h 127.0.0.1 -U postgres test01-dbname | psql…

顺序表详解(如何实现顺序表)

文章目录 前言 在进入顺序表前,我们先要明白,数据结构的基本概念。 一、数据结构的基本概念 1.1什么是数据结构 数据结构是由“数据”和“结构”两词组合而来。所谓数据就是?常见的数值1、2、3、4.....、姓名、性别、年龄,等。…

高维数据的中介效应【中介分析】《R包:HIMA》

允许基于高级中介筛选和惩罚回归技术来估计和测试高维中介效应 Hima包浏览 高维中介示意图 图1. 在暴露和结果之间有高维中介的情况 本包的作用 在确定独立筛选和极小极大凹惩罚技术的基础上,采用联合显著性检验方法对调解效果进行检验。使用蒙特卡罗模拟研究来展…

C#知识点-15(匿名函数、使用委托进行窗体传值、反射)

匿名函数 概念:没有名字的函数,一般情况下只调用一次。它的本质就是一个方法,虽然我们没有定义这个方法,但是编译器会把匿名函数编译成一个方法 public delegate void Del1();//无参数无返回值的委托public delegate void Del2(s…

Java SE 入门到精通—基础语法【Java】

敲重点! 本篇讲述了比较重要的基础,是必须要掌握的 1.程序入口 在Java中,main方法是程序的入口点,是JVM(Java虚拟机)执行Java应用程序的起始点。 main方法的方法签名必须遵循下面规范: publ…

TestNG与ExtentReport单元测试导出报告文档

TestNG与ExtentReport集成 目录 1 通过实现ITestListener的方法添加Reporter log 1.1 MyTestListener设置 1.2 输出结果 2 TestNG与ExtentReporter集成 2.1 项目结构 2.2 MyExtentReportListener设置 2.3 单多Suite、Test组合测试 2.3.1 单Suite单Test 2.3…

Java实现实验室耗材管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 耗材档案模块2.2 耗材入库模块2.3 耗材出库模块2.4 耗材申请模块2.5 耗材审核模块 三、系统展示四、核心代码4.1 查询耗材品类4.2 查询资产出库清单4.3 资产出库4.4 查询入库单4.5 资产入库 五、免责说明 一、摘要 1.1…

WebSocket实现聊天

基于webSocket通信的库主要有 socket.io,SockJS,这次用的是 SockJS。 这里我们使用sockjs-client、stomjs这两个模块,要实现webSocket通信,需要后台配合,也使用相应的模块。 WebSocket 1、http:http超文…

War Robots可以使用5347的卡支付

很多小伙伴想使用War Robots,但是不知道怎么弄,方法比较可靠,亲测有效~~~ 可以使用Fomepay的5347的卡支付 卡片cvc就是卡密,在首页点击更多时可以查看

【ubuntu2004安装N卡驱动】

软硬件环境 硬件:联想notebook16,显卡4060laptop 软件: ubuntu20.04 驱动安装成功的版本:NVIDIA-Linux-x86_64-535.146.02.run 使用默认的驱动安装,没用原因如下 让手动安装。 手动安装 环境准备: sudo …