linux日志查看及定位
2017-07-28 本文已影响636人
freelands
locate problem.png
因为在生产环境会遇到很多问题,那么最快的定位方式莫过于去看日志,我们都知道服务器每天会产生大量的日志,那么如何快速的定位也就是最关键的。
- tail
顾名思义,tail就是尾部的意思,默认会显示日志的最后10行记录
tail -n 100 filename
-n 可以用来指定行数 n也就是number的意思
tail -f filename
-f 会把实时产生的日志追加到标准输出中来,也就是我们的终端
f 我认为是flush的缩写 也就是刷新的意思
- less
less 可以对文件进行分页,
less filename
可以用/ 去匹配过滤信息
然后n是匹配下一个
N匹配上一个
b 是上一页
d是下一页
- vim
最开始我就是用vim去查看日志的
慢慢觉得vim有点笨重
vim 也是用 / 去过滤
n 匹配next
N 匹配上一个
- grep
global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
echo "heiqie1" >> 1.txt
echo "heiqie2" >> 2.txt
echo "heiqie3" >> 3.txt
echo "test" >> 4.txt
#执行结果
cat 1.txt 2.txt 3.txt 4.txt | grep 'heiqie'
heiqie1
heiqie2
heiqie3
#加上-v参数是反向匹配
$ cat 1.txt 2.txt 3.txt 4.txt | grep -v 'heiqie'
test
#加上-n参数是显示该条记录所在的行数
$ cat 1.txt 2.txt 3.txt 4.txt | grep -vn 'heiqie'
4:test
# -c参数是统计符合匹配的一共有多少行
$ cat 1.txt 2.txt 3.txt 4.txt | grep -c 'heiqie'
3
# -E参数是使用正则表达式匹配
# ^h表示以h开头
# \w 表示匹配包括下划线的任何单词字符
# + 表示匹配\w一次或者多次
$ cat 1.txt 2.txt 3.txt 4.txt | grep -E '^h\w+'
heiqie1
heiqie2
heiqie3
# 1$表示以1结尾的
$ cat 1.txt 2.txt 3.txt 4.txt | grep -E '^h\w+1$'
heiqie1