linux服务器日志查询以及awk----奇淫巧技

我们还是喜欢在服务器查看实时日志,也经常在服务器,测试环境服务器查看日志,所以今天也总结一些查看日志的命令,也总结一下awk这个很6的命令。

一、linux日志查询常用命令

1、tailf mywork.log | grep --line-buffered timed out
实时跟踪日志,这里是只要findUserList 这个方法被运行,就会将它的日志打印出来,用于跟踪特定的日志运行。 --line-buffered 是一行的缓冲区,只要这一行的缓冲区满了就会打印出来,所以可以用于实时监控日志。

2、 tailf -n 500 mywork.log 打印最后500行日志,并且持续跟踪日志。

tail -n 2000 mywork.log | more 分页查看最后2000行日志。

3、 grep 'timed out' mywork.log | more 将有关 ‘调用远程服务运行结果是’ 字符串的结果都打印出来,并且是分页打印,用于日志太多的情况。用空格翻页。

4、 cat mywork.log | grep '查看前后100行' -C 100

cat mywork.log | grep '查看前100行' -B 100

cat mywork.log | grep '查看后100行' -A 100

7、按照行号查看日志

wc -l mainCms.log 显示文件一共有多少行。

cat -n mywork.log | tail -n +92|head -n 20 表示先查看92行之后的日志,然后在看这92行之后的日志的前20行。也就是查看92到112行之间的日志。
sed -n '5,10p' mywork.log 查看5行到10行的日志。

8、按日期查看日志

sed -n '/2018-05-26 17:07:00/,/2018-05-26 17:06:59/p' mywork.log

sed -n '/2018-08-16 18:/p' mainCms.log | less -mN

9、grep -E '123|abc' mywok.log 找出包含123或者abc的行。

10、head example.txt 显示文件 example.txt 的前十行内容;

head -n 20 example.txt 显示文件 example.txt 的前二十行内容;

11、ctrl+G 直接查看最后一页日志 ctrl+b 向前翻页 ctrl+n 向后翻页

二、awk命令详解

awk命令说明: AWK是一种处理文本文件的语言,是一个强大的文本分析工具。支持正则匹配输出。

1、基本用法

一段文本:cat log.txt

2 this is a test
3 Are you like awk
This's a test
10 There are orange,apple,mongo

用法一:

awk ‘{[pattern] action}’ {filenames} # 行匹配语句 awk ” 只能用单引号
实例:

# 每行按空格或TAB分割(默认情况),输出文本中的1、4项
$ awk '{print $1,$4}' log.txt
---------------------------------------------
2 a
3 like
This's
10 orange,apple,mongo
---------------------------------------------
# 格式化输出
$ awk '{printf "%-8s %-10s\n",$1,$4}' log.txt
---------------------------------------------
2        a
3        like
This's
10       orange,apple,mongo

用法二:

awk -F #-F相当于内置变量FS, 指定分割字符
实例:

# log.txt的内容如下:
# 2,this,is,a,test
# 3 Are you like awk    
$  awk -F, '{print $1,$2}'   log.txt
---------------------------------------------
2 this
3 Are you like awk

# 使用多个分隔符.先使用空格分割,然后对分割结果再使用","分割
$ awk -F '[ ,]'  '{print $1,$2,$5}'   log.txt
---------------------------------------------
2 this
3 Are

用法三:

awk -v # 设置变量
实例:

$ awk -va=1 '{print $1,$1+a}' log.txt
---------------------------------------------
2 3
3 4
This's 1
10 11
$ awk -va=1 '{print $1,$(1+a)}' log.txt
---------------------------------------------
2 this
3 Are
This's a
10 There
$ awk -va=1 -vb=s '{print $1,$1+a,$1b}' log.txt
---------------------------------------------
2 3 2s
3 4 3s
This's 1 This'ss
10 11 10s

用法四:

awk -f {awk脚本} {文件名}
$ awk -f cal.awk log.txt

2、运算符

在这里插入图片描述
过滤第一列大于2的行

$ awk '$1>2' log.txt    #命令
#输出
3 Are you like awk
This's a test
10 There are orange,apple,mongo

过滤第一列等于2的行

$ awk '$1==2 {print $1,$3}' log.txt    #命令
#输出
2 is

过滤第一列大于2并且第二列等于’Are’的行

$ awk '$1>2 && $2=="Are" {print $1,$2,$3}' log.txt    #命令
#输出
3 Are you

在这里推介一篇博客:https://blog.csdn.net/jin970505/article/details/79056457

菜鸟教程:https://www.runoob.com/linux/linux-comm-awk.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值