当前位置: 首页 > news >正文

day006

文章目录

  • 1. 故障案例
  • 2. 适合查看日志的命令
    • 2.1 tail/head
    • 2.2 grep 行过滤器
    • 2.3 less/more
  • 3. 日志分析必备知识
    • 3.1 wc
    • 3.2 管道符:|
  • 4. 思维导图

1. 故障案例

  • 某开发人员在测试环境中使用vim编辑10g日志文件,导致系统内存不足。
  • 原因:vim打开文件,会把文件加载到内存中。若文件过大会导致内存溢出。
  • 避免方法:
    1.查看日志不要用cat和vim
    2.推荐使用tail/head,less/more,grep

2. 适合查看日志的命令

2.1 tail/head

  • tail:尾部,查看文件末尾的内容,默认是10行
  • head:头部,查看文件开头的内容,默认是10行
[root@oldboy99-Kylin ~]# tail /etc/passwd
cockpit-ws:x:993:990:User for cockpit-ws:/nonexisting:/sbin/nologin
chrony:x:992:989::/var/lib/chrony:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
pesign:x:991:987:Group for the pesign signing daemon:/var/run/pesign:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
# 查看文件末尾的5行信息
[root@oldboy99-Kylin ~]# tail /etc/passwd -n5
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
pesign:x:991:987:Group for the pesign signing daemon:/var/run/pesign:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
# 实时查看日志文件末尾的信息
[root@oldboy99-Kylin ~]# tail -f /var/log/messages 
Apr 29 13:25:38 oldboy99-Kylin systemd[1]: kylin-kms-activation.service: Service RestartSec=30s expired, scheduling restart.
Apr 29 13:25:38 oldboy99-Kylin systemd[1]: kylin-kms-activation.service: Scheduled restart job, restart counter is at 208.
Apr 29 13:25:38 oldboy99-Kylin systemd[1]: Stopped run kylin_kms_daemon at boot time.
Apr 29 13:25:38 oldboy99-Kylin systemd[1]: Started run kylin_kms_daemon at boot time.
Apr 29 13:26:38 oldboy99-Kylin systemd[1]: kylin-kms-activation.service: Main process exited, code=exited, status=255/EXCEPTION
Apr 29 13:26:38 oldboy99-Kylin systemd[1]: kylin-kms-activation.service: Failed with result 'exit-code'.
Apr 29 13:27:08 oldboy99-Kylin systemd[1]: kylin-kms-activation.service: Service RestartSec=30s expired, scheduling restart.
Apr 29 13:27:08 oldboy99-Kylin systemd[1]: kylin-kms-activation.service: Scheduled restart job, restart counter is at 209.
Apr 29 13:27:08 oldboy99-Kylin systemd[1]: Stopped run kylin_kms_daemon at boot time.
Apr 29 13:27:08 oldboy99-Kylin systemd[1]: Started run kylin_kms_daemon at boot time.

[root@oldboy99-Kylin ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
# 查看文件开头5行内容
[root@oldboy99-Kylin ~]# head /etc/passwd -n5
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

2.2 grep 行过滤器

grep:正则表达式,可以出过滤文件中包含目标内容的行。

grep是逐行匹配内容。

grep选项说明
-iignore case,忽略大小写
-n显示行号
-vinvert,取反,显示非指定内容的行
  • 在/etc/passwd文件中找到包含root的行

    [root@oldboy99-Kylin ~]# grep 'root' /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    
  • 在ssh的配置文件中过滤出包含Port的行

    [root@oldboy99-Kylin ~]# grep 'Port' /etc/ssh/sshd_config
    Port 12345
    #GatewayPorts no
    GatewayPorts no
    
  • 在ssh的配置文件中过滤出包含PermitRootLogin的行(不区分大小写)

    [root@oldboy99-Kylin ~]# grep 'PermitRootLogin' /etc/ssh/sshd_config -i
    PermitRootLogin yes
    # the setting of "PermitRootLogin without-password".
    
  • 在ssh的配置文件中过滤出包含Port的行,并显示行号

    [root@oldboy99-Kylin ~]# grep 'Port' /etc/ssh/sshd_config -n
    17:Port 12345
    101:#GatewayPorts no
    160:GatewayPorts no
    
  • 在/etc/passwd中过滤出不包含root的行

    [root@oldboy99-Kylin ~]# grep -v 'root' /etc/passwd
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    ……
    

2.3 less/more

  • 按页查看文件内容,但是无法修改文件内容
  • 使用more时,查看到文件末尾会自动退出,且无快捷键
  • 推荐使用less
less快捷键说明
q退出
G最后一行
g第一行
数字g到某一行
空格或ctrl+f下一页
ctrl+b上一页

3. 日志分析必备知识

3.1 wc

wc:word count,单词计数,一般用来计算文件的行数

  • 统计/etc/passwd的行数
    # -l:lines,只显示行数
    [root@oldboy99-Kylin ~]# wc -l /etc/passwd
    36 /etc/passwd
    
  • 统计/etc/services的行数
    [root@oldboy99-Kylin ~]# wc -l /etc/services 
    11473 /etc/services
    

3.2 管道符:|

  • 左边命令的输出作为右边命令的输入(参数)
  • 管道符的两边必须是命令

  • 统计/etc/passwd文件中命令解释器是/bin/bash的数量
    [root@oldboy99-Kylin ~]# grep '/bin/bash' /etc/passwd |wc -l
    1
    
  • 统计系统中sshd进程的数量
    [root@oldboy99-Kylin ~]# ps -ef | grep 'sshd' |wc -l
    4
    
  • 过滤出sshd服务的端口
    [root@oldboy99-Kylin ~]# ss -lntup |grep 'sshd'
    tcp     LISTEN   0        128              0.0.0.0:12345          0.0.0.0:*      users:(("sshd",pid=835,fd=5))                                                
    tcp     LISTEN   0        128                 [::]:12345             [::]:*      users:(("sshd",pid=835,fd=6)) 
    

4. 思维导图

【金山文档】 思维导图 https://www.kdocs.cn/l/co3I7PtpTYQX


http://www.mrgr.cn/news/100693.html

相关文章:

  • phpstudy修改Apache端口号
  • 基于FFmpeg命令行的实时图像处理与RTSP推流解决方案
  • KenticoCMS 文件上传导致xss漏洞复现(CVE-2025-2748)
  • Linux CentOS 7 安装Apache 部署html页面
  • [stm32] 4-1 USART(1)
  • 使用C# ASP.NET创建一个可以由服务端推送信息至客户端的WEB应用(1)
  • 【Prometheus-Postgres Exporter安装配置指南,开机自启】
  • Shopify网上商店GraphQL Admin接口查询实战
  • IAP远程升级入门讲解
  • 对 FormCalc 语言支持较好的 PDF 编辑软件综述
  • 十五种光电器件综合对比——《器件手册--光电器件》
  • Linux环境变量以及进程虚拟地址原理
  • WPF之Button控件详解
  • Vue 中的过渡效果与响应式数据:transition、transitiongroup、reactive 和 ref 详解
  • 【Prometheus-Mongodb Exporter安装配置指南,开机自启】
  • 2025运维工程师面试题1(答案在后一张)
  • CSS:编写位置分类及优先级
  • Git常用指令速查
  • 论文阅读:2024 ACL ArtPrompt: ASCII Art-based Jailbreak Attacks against Aligned LLMs
  • go单向链表