Linux-查看清理日志方法总结

1. cat

1.1  介绍

cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。

1.2 命令

语法格式:

cat [-AbeEnstTuv] [--help] [--version] fileName

参数说明:

  • -n 或 --number:由 1 开始对所有输出的行数编号。
  • -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
  • -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
  • -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
  • -E 或 --show-ends : 在每行结束处显示 $。
  • -T 或 --show-tabs: 将 TAB 字符显示为 ^I。
  • -A, --show-all:等价于 -vET。
  • -e:等价于"-vE"选项;
  • -t:等价于"-vT"选项;

1.2.1 cat test.log :  查看test.log内容。

  image

1.2.2 cat -n test.log,查看test.log文件的内容,并且由1开始对所有输出行进行编号。(包括空白行)

 image

1.2.3 cat -b test.log ,用法和 -n 差不多,但是不对空白行编号。

image

1.2.4 cat -s test.log,当遇到有连续两行或两行以上的空白行,就代换为一行的空白行。

1.2.5 cat -e test.log,在输出内容的每一行后面加一个$符号。(包括空白行)

image

1.2.6 cat test.log  test1.log,同时显示test.log和test1.log文件内容,注意文件名之间以空格分隔,而不是逗号。

image

1.2.7 cat -n test.log  > test2.log,对test.log文件中每一行加上行号后然后写入到test2.log中,会覆盖原来的内容,文件不存在则创建它。

image

1.2.8 cat -n test.log >> test1.log,对f1.txt文件中每一行加上行号后然后追加到test3.log中去,不会覆盖原来的内容,文件不存在则创建它。

image

1.3 使用示例

项目中比较大的日志一般查询日志配合grep命令使用
命令: cat filename | grep 关键字 -C10   -C:显示前后多少行 -A:显示后多少行 -B:显示前多少行

1.3.1  查找 日志中含有Exception关键字的前后10行

   cat tarzan-mes.2022-07-08.10-1.log  | grep "Exception" -C 10

1.3.2  查找 日志中含有Exception关键字的前后10行并输出到一个新的文件中

   cat tarzan-mes.2022-07-08.10-1.log  | grep "Exception" -C 10 >  exception.log

2. more

2.1 介绍

    more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能

2.2 命令

 2.2.1 基本命令

 命令语法:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
  • -num  一次显示的行数
  • -d       提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
  • -l        取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
  • -f        计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
  • -p      不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
  • -c       跟 -p 相似,不同的是先显示内容再清除其他旧资料
  • -s       当遇到有连续两行以上的空白行,就代换为一行的空白行
  • -u       不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
  • +/pattern  在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
  • +num   从第 num 行开始显示
  • fileNames  欲显示内容的文档,可为复数个数

2.2.2 操作命令

  • Enter 向下n行,需要定义。默认为1行
  • Ctrl+F 向下滚动一屏
  • 空格键 向下滚动一屏
  • Ctrl+B 返回上一屏
  • = 输出当前行的行号
  • :f 输出文件名和当前行的行号
  • V 调用vi编辑器
  • !命令 调用Shell,并执行命令
  • q 退出more

2.3 使用示例

2.3.1 一页显示100行记录

more -100 tarzan-mes.2022-07-08.13-1.log
image

2.3.2 使用提示画面的方式查看每页显示5行记录

more -d -5 tarzan-mes.2022-07-08.13-1.log
image

2.3.3 使用提示画面的方式查看从第100行查看日志每页显示10行记录,并搜索“Exception”关键字的内容

more -d -10 tarzan-mes.2022-07-08.13-1.log
image

3.tail

3.1 描述

   tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

3.2 命令

命令语法
 tail [参数] [文件]
参数说明
  • -f   循环读取
  • -q 不显示处理信息
  • -v  显示详细的处理信息
  • -c<数目> 显示的字节数
  • -n<行数> 显示文件的尾部 n 行内容
  • --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
  • -q, --quiet, --silent 从不输出给出文件名的首部
  • -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

3.3 使用示例

3.3.1 显示 notes.log 文件的最后 10 行

tail notes.log         # 默认显示最后 10 行

3.3.2 要跟踪名为 notes.log 的文件的增长情况

tail -f notes.log
   备注:此命令显示 notes.log 文件的最后 10 行。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。

3.3.3 显示文件 notes.log 的内容,从第 20 行至文件末尾

tail -n +20 notes.log

3.3.4 显示文件 notes.log 的最后 10 个字符

    tail -c 10 notes.log

4. split

4.1 描述

Linux split命令用于将一个文件分割成数个。该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件。

4.2 命令

命令语法
split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]
参数说明
  • -<行数> : 指定每多少行切成一个小文件
  • -b<字节> : 指定每多少字节切成一个小文件
  • --help : 在线帮助
  • --version : 显示版本信息
  • -C<字节> : 与参数"-b"相似,但是在切 割时将尽量维持每行的完整性
  • [输出文件名] : 设置切割后文件的前置文件名, split会自动在前置文件名后再加上编号

4.3 使用示例

4.3.1.  默认 split命令分割文件成每个文件1000行,并且文件名依次为 [前缀]aa,[前缀]ab,[前缀]ac等,默认的前缀是X,每个文件的行数为1000行

  split app.log

4.3.2.  将app.out文件每200兆分割成一个文件并命名未app.log+数字方式结尾

  split -d  -b 200m app.out app.log 
image
image

5. 其它方式

5.1 vi 命令

这是个编辑命令,但也类似于more的使用方式可以用来查看搜索日志中的关键字
  命令格式:vi 文件名
   vi  app.log 

5.2 sed 命令中的搜索

命令格式:sed -n  '/开始时间/,/结束时间/p' > 输出的文件名
 sed -n '/2019-04-22/,/2019-04-22 /p' log.log > bbb.txt

6. 日志清理

6.1  删除指定时间前的文件

find ./ -name *.log -mtime +7| xargs rm -rf

6.2 echo 清理

echo "" > app.out
 
备注: 该方式适合控制台输出,像tomcat启动的catlina.out日志清理或者java -jar 启动指定log文件的清理。
 
 
 
 
 
posted @ 2022-07-11 17:27  风光小磊  阅读(1279)  评论(0编辑  收藏  举报