应对线上故障的问题,换公司之后接触的比较多,一个月运维一个星期的线上运维的工作,期间呢,对于自己排查问题的问题,零零散散的,日志图形化界面的统一管理工具使用起来不太熟悉,只好通过堡垒机登陆到具体的服务器上查看具体的日志信息,这样子比较方便查看当前的日志信息,处理解决问题,分析问题也是比较的快速!这个对于我们快速定位到具体的异常,快速查找日志等能力提出了一些要求!反正就是,快速的找到日志中问题!一般情况下都是运营或者测试同学发现异常后通知到开发这里,进行处理,根据关键词进行排查。
NOTE: 如果对于特定的命令行,可能某些参数会忘记掉怎么办?baidu,google 还是… 其实最简单的就是 man cat,man tail linux服务器直接就将当前的命令的一些详细的命令行的使用信息全部的给你打印出来啦!非常的方便。
前期准备:
通过vi 创建一个test.log
hello
go
日志查询
linux
国期间
日志排查
test
:wq 保存并退出
:q!保存
:u 撤回
esc 切换命令 ....
cat 这个查看文件的信息命令比较常见,一般情况下都是直接cat test.log就ok,添加一个-n 显示行号。
wangjideMacBook-Pro:logs wangji$ cat -n test.log
1 wangji
2 hello
3 go
4 日志查询
5 linux
6 国期间
7 日志排查
8 test
9 :wq 保存并退出
10 :q!保存
11 :u 撤回
12 esc 切换命令 ....
你可以通过man tail 查看一些参数,这个命令行不能查看前多少行,后多少行哈哈!,专业人处理专业的事情!
查询最后两行的日志信息,查询第二行之后的所有信息,一直查最后的最新的两行信息;一般使用的都是查询最后的多少行的信息,或者持续的更新查询最后的最新的信息
wangjideMacBook-Pro:logs wangji$ tail -n 2 test.log
:u 撤回
esc 切换命令 ....
wangjideMacBook-Pro:logs wangji$ tail -n +2 test.log
hello
go
日志查询
linux
国期间
日志排查
test
:wq 保存并退出
:q!保存
:u 撤回
esc 切换命令 ....
wangjideMacBook-Pro:logs wangji$ tail -f -n 2 test.log
:u 撤回
esc 切换命令 ....
这个时候打开另外一个终端去追加文件信息(>>)
ping www.baidu.com >> test.log
效果就如下咯,一直在刷新!
wangjideMacBook-Pro:logs wangji$ tail -f -n 2 test.log
64 bytes from 115.239.210.27: icmp_seq=12 ttl=48 time=44.253 ms
64 bytes from 115.239.210.27: icmp_seq=13 ttl=48 time=88.128 ms
64 bytes from 115.239.210.27: icmp_seq=14 ttl=48 time=132.161 ms
64 bytes from 115.239.210.27: icmp_seq=15 ttl=48 time=224.554 ms
64 bytes from 115.239.210.27: icmp_seq=16 ttl=48 time=226.281 ms
64 bytes from 115.239.210.27: icmp_seq=17 ttl=48 time=12.013 ms
64 bytes from 115.239.210.27: icmp_seq=18 ttl=48 time=33.998 ms
64 bytes from 115.239.210.27: icmp_seq=19 ttl=48 time=16.195 ms
64 bytes from 115.239.210.27: icmp_seq=20 ttl=48 time=48.376 ms
64 bytes from 115.239.210.27: icmp_seq=21 ttl=48 time=9.160 ms
64 bytes from 115.239.210.27: icmp_seq=22 ttl=48 time=14.283 ms
64 bytes from 115.239.210.27: icmp_seq=23 ttl=48 time=17.027 ms
64 bytes from 115.239.210.27: icmp_seq=24 ttl=48 time=10.135 ms
64 bytes from 115.239.210.27: icmp_seq=25 ttl=48 time=9.901 ms
64 bytes from 115.239.210.27: icmp_seq=26 ttl=48 time=35.506 ms
grep 搜索功能还是比较强大的!不仅支持简单的字符串匹配,还支持模式匹配(egrep)等等!
wangjideMacBook-Pro:logs wangji$ grep 'hello' test.log
hello
wangjideMacBook-Pro:logs wangji$ grep -A 5 '日志排查' test.log
日志排查
test
:wq 保存并退出
:q!保存
:u 撤回
esc 切换命令 ....
wangjideMacBook-Pro:logs wangji$ grep -B 5 '日志排查' test.log
hello
go
日志查询
linux
国期间
日志排查
wangjideMacBook-Pro:logs wangji$ grep -C 5 '日志排查' test.log
hello
go
日志查询
linux
国期间
日志排查
test
:wq 保存并退出
:q!保存
:u 撤回
esc 切换命令 ....
wangjideMacBook-Pro:logs wangji$ grep -n '日志排查' test.log
6:日志排查
wangjideMacBook-Pro:logs wangji$ grep -n '日志排查' test.log | grep '日志'
6:日志排查
wangjideMacBook-Pro:logs wangji$ grep -n '日志排查' test.log | grep 'hello'
wangjideMacBook-Pro:logs wangji$
wangjideMacBook-Pro:logs wangji$ grep -n -E '日志排查|hello' test.log
1:hello
6:日志排查
你自己使用man 查看具体的命令行信息的时候就会使用到 more或者less的操作
你可以使用 more test.log 或者 less test.log 进行尝试,最主要的就是翻页的技巧咯!一般情况下使用都是放置最最后使用管道进行操作处理。多种命令组合起来操作。记住一个就好啦~多了也是记不得。
Less 吧:
Less的操作技巧主要体现在上下翻页速度上!直接滚动鼠标也是可以的!
功能 | 快捷键 |
---|---|
向上移动一行;同vi | k |
向下移动一行;同vi | j;Enter 向下移动一行; |
(backword)向上滚动一屏 | b |
(forword)向下滚动一屏 | f; Space 向下滚动一屏; |
向下滚动半屏 | d |
向上滚动半屏 | u |
指定从哪行下开始显示 | w |
跳到最后一行 | G |
跳到第一行 | g |
搜索pattern | /pattern ,比如搜索hello关键字 /hello |
调用vi编辑器 | v |
退出less | q |
上面说了这么多,其实他们都不会单独的使用的!一般情况下回通过管道操作将多个命令组合在一起使用的!熟练的掌握上面的命令只是时间的问题,没事的时候看看自己总结的比在外面到处找方便很多。
vim这个东东,我们应该是非常的熟悉了,虽然不经常用,但是基本的修改,保存的操作都了解的!平时配置环境变量这个时候在服务器上就需要有些必要的操作,虽然docker带来了很多的方便,有些东西都不需要配置了,了解还是十分有必要的!主要记住有些操作就行啦。
操作之前功能和命令转换需要按一下ESC在继续输入
功能
|
操作
|
向下移动一行
|
j;向下箭头
|
向上移动一行
|
k;向上箭头
|
向左移动一个字符
|
h;向左箭头
|
向右移动一个字符
|
l;向右箭头
|
上下移动在一个键盘上连城一条线的 hjkl;对于上下移动还可以添加行数字符数量,比如 3j,3k,3l等等
|
|
向上移动一屏(before)
|
ctrl+b
|
向下移动一屏(forward)
|
ctrl+f
|
搜索
|
|
正向查找,按n键把光标移动到下一个符合条件的地方
|
/search ,一般就是 /hello 搜索hello关键字
|
反向查找,按shift+n 键,把光标移动到下一个符合
|
?serach,?hello 搜索hello关键字
|
撤销命令
|
u
|
恢复撤销命令
|
ctrl+r
|
显示所有行号(全局 vim ~/.vimrc 中输入 set nu)
|
set nu
|
快速跳到一行的开头和行尾
|
头:0 尾 $;任意行 12
|
没事多总结,使用的时候反应太慢了不太好…