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

day006

文章目录

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

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)) 
    
http://www.xdnf.cn/news/2884.html

相关文章:

  • FPGA 39 ,FPGA 网络通信协议栈进阶,RGMII、ARP 与 UDP 协议与模块设计( RGMII、ARP、UDP原理与模块设计 )
  • 基于STM32的中点圆算法,画空心圆的函数
  • 【MongoDB篇】MongoDB的数据库操作!
  • 通义千问最新一代大语言模型Qwen3发布了
  • 前端漏洞不扫描理由
  • 各服务日志: Grok正则解析
  • 高瓴资本张磊的顶级价值投资之道
  • 通信原理第七版与第六版区别附pdf
  • Alibaba国际站商品详情AP接口概述,json数据示例返回参考
  • 分布式系统的基石:从 CAP 理论到一致性算法全解析(简化版)
  • Centos 7系统 宝塔部署Tomcat项目(保姆级教程)
  • Spring知识点梳理
  • 【算法练习】归并排序和归并分治
  • 【C++贪心】P6023 走路|普及
  • 2025.4.29总结
  • 训练神经网络的批量标准化(使用 PyTorch)
  • Ubuntu 系统上部署 Kubernetes 的完整指南
  • KUKA机器人关机时冷启动介绍
  • 得物 小程序 6宫格 分析
  • 达索Abaqus与ANSYS Mechanical有限元分析软件对比研究
  • 缓存分片哈希 vs 一致性哈希:优缺点、区别对比及适用场景(图示版)
  • deepseek海思SD3403边缘计算AI产品系统
  • 制作一款打飞机游戏30:动画系统
  • C++学习之shell高级和正则表达式
  • MySQL事务(transaction)(笔记)
  • node.js 实战——mongoDB 续一
  • MySQL中的分组和多表连接
  • 信息过载(Information Overload):太多的信息导致了信息处理能力的饱和
  • 浏览器自动化工具:Selenium 和 Playwright
  • iOS—仿tableView自定义闹钟列表