Linux服务器监控以及查日志教程

阅读: 评论:0

Linux服务器监控以及查⽇志教程
bash快捷键
快捷键作⽤
crtl+A把光标移动到命令⾏开头,如果我们输⼊的命令过长,想要把光标移动到命令⾏开头时使⽤
crtl+E把光标移动到命令⾏结尾
crtl+C强制终⽌当前的命令
crtl+L清屏,相当于clear命令
crtl+U删除或剪切光标之前的命令,加⼊输⼊了⼀串很长的命令,不⽤使⽤退格键⼀个⼀个字符的删除,使⽤这个命令更加⽅便
crtl+K删除或剪切光标之后的命令
crtl+Y粘贴ctrl+U或crtl+K剪切的内容
crtl+R在历史命令中搜索,按下crtl+R键之后,就会出现搜索界⾯,只要输⼊搜索内容,就会从历史命令中搜索
crtl+D推出当前终端
crtl+Z暂停,并放⼊后台,这个快捷键牵扯到⼯作管理的内容
crtl+S暂停屏幕输出
crtl+Q恢复屏幕输出
1 查看服务器⽇志
1.1 统计业务接⼝调⽤的次数
(1) -c
格式:grep -c {关键词} {⽇志⽂件}
-c会把所有符合要求的⽂件都统计出数量结果,不会将所有的⽇志的数量进⾏汇总,所以这个命令执⾏完之后,会得到所有符合要求的⽂件以及该⽂件中符合要求的数量,如下所⽰:
grep -c getInfo /data/nginx/logs/info-2021-07-*
grep正则表达式:
元数据意义和范例
^word搜寻以word开头的⾏。 例如:搜寻以#开头的脚本注释⾏ grep –n ‘^#’
word$搜寻以word结束的⾏
.
匹配任意⼀个字符。 例如:grep –n ‘e.e’   匹配e和e之间有任意⼀个字符,可以匹配eee,eae,eve,但是不匹配ee。
\转义字符。 例如:搜寻’,’是⼀个特殊字符,在正则表达式中有特殊含义。必须要先转义。grep –n ‘\,”
\*前⾯的字符重复0到多次。 例如匹配gle,gogle,google,gooogle等等 grep –n ‘go\*gle’
[list]匹配⼀系列字符中的⼀个。 例如:匹配gl,gf。grep –n ‘g[lf]’ [n1-n2]匹配⼀个字符范围中的⼀个字符。 例如:匹配数字字符 grep –n ‘[0-9]’
[^list]匹配字符集以外的字符 例如:grep –n ‘[^o]‘   匹配⾮o字符\<word 单词是的开头。 例如:匹配以g开头的单词 grep –n ‘\<g’
word\>前⾯的字符重复n1,n2次 例如:匹配google,gooogle。grep –n ‘go\{2,3\}gle’
\<word 匹配单词结尾 例如:匹配以tion结尾的单词 grep –n ‘tion\>’ word\{n1\}前⾯的字符重复n1 例如:匹配google。 grep –n ‘go\{2\}gle’
word\{n1,\}前⾯的字符⾄少重复n1 例如:匹配google,gooogle。
grep –n ‘go\{2\}gle’ word\{n1,n2\}
前⾯的字符重复n1,n2次 例如:匹配google,gooogle。 grep –n ‘go\{2,3\}gle’
元数据意义和范例
(2) 与 -l 结合
格式:grep {关键词} {⽇志⽂件} | wc -l
这个命令会把所有符合要求的⽂件中的统计数量进⾏汇总求和,所有这个命令执⾏完之后,会得到⼀个数字。
grep  getInfo /data/nginx/logs/info-2021-07-* | wc  -l
(3)
格式:zgrep {关键词} {⽇志⽂件} | wc -l
由于⽇志⽂件可能会很⼤,很多公司会每天按照⼤⼩进⾏切分,并以压缩格式保存,这类⽂件就需要使⽤zgrep命令进⾏统计。
root@iZbp1crt1zqre1ar8:/HD/logs/punchout # zgrep -c 'TraceLogProviderFilter' punchout.2020-02-23_ 274647
root@iZbp1crt1zqre1ar8:/HD/logs/punchout # zgrep -c 'TraceLogProviderFilter' punchout.2020-02-23_*. punchout.2020-02-23_:274647punchout.2020-02-23_:274995
(4) 按照正则匹配所有接⼝形式的调⽤
正则表达式形式如下:
awk  '{match($0, /\/[a-zA-Z]+\/[a-zA-Z]+/, a); print a[0];}'
命令如下:
cat  log.2021081916 | awk  '{match($0, /\/[a-zA-Z]+\/[a-zA-Z]+/, a); print a[0];}' | sort  | uniq  -c | sort  -n -r
(5) 统计调⽤次数⼤于n 的接⼝
先整理出所有接⼝被调⽤的次数,然后再使⽤awk 对所有接⼝和调⽤次数进⾏遍历,筛选出所有调⽤次数⼤于n 的接⼝即可。
cat  log.20210819 | awk  '{match($0, /\/[a-zA-Z]+\/[a-zA-Z]+/, a); print a[0];}' | sort  | uniq  -c | sort  -n -r | awk  -F " " '{if ($1>100) print $1, $2}'
1.2 统计访问IP的次数
⾸先查看⽇志的格式,可以按照空格进⾏切割,然后对切割完的结果进⾏排序,使⽤sort命令,最后在使⽤uniq命令,去除⼀些重复的⾏
sort命令是在Linux⾥⾮常有⽤,它将⽂件进⾏排序,并将排序结果标准输出。sort命令既可以从特定的⽂件,也可以从stdin中获取输⼊。
**语法格式:**sort [参数] [⽂件]
常⽤参数:
-b忽略每⾏前⾯开始出的空格字符
-c检查⽂件是否已经按照顺序排序
-d排序时,处理英⽂字母、数字及空格字符外,忽略其他的字符
-f排序时,将⼩写字母视为⼤写字母
-i排序时,除了040⾄176之间的ASCII字符外,忽略其他的字符
-m将⼏个排序号的⽂件进⾏合并
-M将前⾯3个字母依照⽉份的缩写进⾏排序
-n依照数值的⼤⼩排序
-o <;输出⽂件>将排序后的结果存⼊制定的⽂件
-r以相反的顺序来排序
-t <;分隔字符>指定排序时所⽤的栏位分隔字符
-k指定需要排序的栏位
uniq命令全称是“unique”,中⽂释义是“独特的,唯⼀的”。该命令的作⽤是⽤来去除⽂本⽂件中连续的重复⾏,中间不能夹杂其他⽂本⾏。去除了重复的,保留的都是唯⼀的,也就是独特的,唯⼀的了。
我们应当注意的是,它和sort的区别,sort只要有重复⾏,它就去除,⽽uniq重复⾏必须要连续,也可以⽤它忽略⽂件中的重复⾏。
**语法格式:**uniq [参数] [⽂件]
常⽤参数:
-c打印每⾏在⽂本中重复出现的次数
-d只显⽰有重复的纪录,每个重复纪录只出现⼀次
-u只显⽰没有重复的纪录
知道IP在哪个位置:
cat log.2021073016-20210730 |awk -F' ''{print $4}'|sort|uniq -c
不知道IP在哪个位置,采⽤正则匹配
cat log.2021073016-20210730 |awk --re-interval '{match($0, /([0-9]{1,3}\.){3}[0-9]{1,3}/, a); print a[0]}'|sort|uniq -c |sort -n -r
2 查看服务器负载
服务器负载⼀般指的是Linux服务器的CPU、内存、IO等的负载。
(1) -查看系统负载
Linux系统中的uptime命令主要⽤于获取主机运⾏时间和查询Linux系统负载等信息。
uptime命令可以显⽰系统已经运⾏了多长时间,信息显⽰依次为:现在时间、系统已经运⾏了多长时间、⽬前有多少登录⽤户、系统在过去的1分钟、5分钟和15分钟内的平均负载。 uptime命令⽤法⼗分简单,直接输⼊uptime即可查看系统负载情况。
语法格式:uptime [参数]
常⽤参数:
-p以漂亮的格式显⽰机器正常运⾏的时间
-s系统⾃开始运⾏时间,格式为yyyy-mm-dd hh:mm:ss
-h显⽰帮助信息

本文发布于:2023-05-04 23:38:22,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/87648.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:命令   匹配   排序
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图