LINUX指令:查日志,查性能

(一)查日志

split

1.根据行数切割

wc -l err_20190907.log(查看多少行)
split -l 300 -d --verbose err_20190907.log split-line 

指定行数后会自动做切割,即达到300行之后自动切割,通过-d参数文件名会自动以数字的方式命名,切割后,每个文件大小为24K,此时再对文件进行分析将会方便很多,同时文件数量也会很多,可以增加行数的方式进行切割,方便分析。
2.根据大小切割
除了按照行数切割之外,split还支持通过文件大小进行切割,通过指定-b参数指定文件大小进行切割,文件大小单位支持K, M, G, T, P, E, Z,如下以切割为30K演示文件切割过程

split -b 30K -d --verbose err_20190907.log sp

3.split将大文件切割为多个小文件,如果需要将多个小文件合并为一个文件怎么处理呢?

可以使用文件重定向方式实现,如下演示两个小文件合并为一个文件

 cat split-line00 split-line01 >two-file-merge

合并方式通过读取文件的方式+输出重定向,对于大文件一样会存在性能的问题,建议根据需要使用

tail

参数:

  1. -f 循环读取
  2. -q 不显示处理信息
  3. -v 显示详细的处理信息
  4. -c Number 从 Number 字节位置读取指定文件
  5. -n Number 从 Number 行位置读取指定文件
  6. -m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题
  7. -b Number 从 Number 表示的512字节块位置读取指定文件
  8. -k Number 从 Number 表示的1KB块位置读取指定文件。
tail [-f][-c N|-n N|-m N|-b N|-k N][File]

eg:

  1. tail -f test.log 查看实时日志 tail -100f test.log 查看最后100行日志记录
  2. tail -n 10 test.log 查询日志尾部最后10行的日志
  3. tail -n 10 test.log 查询10行之后的所有日志
  4. tail -fn 100 test.log 循环实时查看最后100行记录

head

功能跟tail是相反的,tail是查看后多少行日志,head是查看前多少行日志。用法相同

cat

功能:

  1. 一次显示整个文件。 cat filename
  2. 创建一个文件。 cat > filename
  3. 将几个文件合并为一个文件。 cat file1 file2 > file

eg:

  1. cat test.log | tail -n 1000 #输出test.log 文件最后1000行
  2. cat -n test.log |grep “debug” #得到关键日志的行号
  3. cat filename | tail -n 3000 | head -n 1000 #从第3000行开始,显示1000行。即显示3000~3999行
  4. cat filename| head -n 3000 | tail -n 1000 #显示1000行到3000行
  5. cat -n textfile1 > textfile2 #把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
  6. cat -b textfile1 textfile2 >> textfile3 #把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里
  7. cat error.log | grep -C 5 ‘nick’ 显示file文件里匹配foo字串那行以及上下5行 cat error.log | grep -B 5 ‘nick’ 显示foo及前5行 cat error.log | grep -A 5 ‘nick’ 显示foo及后5行

tac

功能 tac是将cat反写过来,它的功能跟cat相反,cat是由第一行到最后一行连续显示,而tac是由最后一行到第一行反向显示.

more

以一页一页形式显示。基本指令按空白键(space)往下一页显示,按返回键(back)往上一页显示,还有字符搜索功能

  1. -num 一次显示的行数
  2. -d 提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声
  3. -l 取消遇见特殊字元 ^L 时会暂停的功能
  4. -f 计算行数时,以实际上的行数,而非自动换行过后的行数
  5. -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
  6. -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
  7. -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
  8. -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
  9. /pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
  10. num 从第 num 行开始显示

eg:

  1. cat -n test.log |grep “条件” |more 这样就分页打印了,通过点击空格键翻页
  2. more -s test.log 逐页显示日志,如有连续两行以上空白行则以一行空白行显示 more 20 test.log 从第 20 行开始显示日志内容

grep

关键字查找

sed

  1. sed -n ‘5,10p’ filename 这样你就可以只查看文件的第5行到第10行。
  2. sed -n ‘/2018-02-06 15:05:38/,/2018-02-06 15:20:38/p’ umltech-scan 按时间段查询日志:sed -n ‘/开始时间/,/结束时间/p’ umltech-scan,时间格式为"yyyy-mm-dd hh:mm:ss"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值