Linux 日志抓取

抓取日志,记录下工作中用到过的命令
cat 命令
抓取日志开头的前五个
cat error.log | head -n 5
抓取日志末尾的后五个
cat error.log | tail -n 5
head 头 tail 尾
cat -n errror.log 抓取文件的所有内容,并打上行数
"或"查找,不能有空格:
cat access.log|grep -E “13004708091|13064533869| 13064563575|13074677632| 13075749296|13123994986”
管道命令可以级联使用
grep 命令,限制返回的结果数量, grep -m 数量 匹配字符,
如:grep -m 10 PATTERN [FILE],如: grep --num
cat catalina.2021-11-09.out |grep bind|grep supplier |grep -m 10 null
grep -c 或 --count : 计算符合样式的列数
cat catalina.2021-11-09.out |grep bind |grep supplier |grep -c null
把内容追加到文件
cat catalina.out | grep bind >1.txt
把内容覆盖到文件
cat catalina.out | grep bind >> 1.txt
从linux中上传下载文件命令:
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器
sz:将选定的文件发送(send)到本地机器
如 sz 123.mp3
参考:https://developer.aliyun.com/article/63145

Linux 用 cat、tail、head查看文件任意几行的数据

一、使用cat、tail、head组合

1、查看最后100行的数据

cat filename | tail -n 100

2、查看100到300行的数据

cat filename | head -n 300 | tail -n +100

1、cat filename 打印文件所有内容

2、tail -n 100 打印文件最后100行的数据

    cat filename tail -n 100

3、tail -n +100 打印文件第100行开始以后的内容

   cat filename tail -n +100 

4、head -n 100 打印前100的内容

   cat filename head -n 100

^ 这个符号在规则表达式中,代表行的 “开头” 位置,在[]中也与"!"(叹号)一样表示“非”

cat catalina.2021-11-26.out |grep doPushError |grep “^2021-11-26 08:30”

#抓取指定时间段,带有关键字的日志
sed -n ‘/2021-11-26 07:00:21/,/2021-11-26 09:30:58/p’ catalina.2021-11-26.out | grep doPushError

sed -n ‘/^2021-11-26 07:00:/,/^2021-11-26 09:30:/p’ catalina.2021-11-26.out | grep doPushError

sed -n ‘/^2022-02-15 10:00:/,/^2022-02-15 11:00:/p’ catalina.2022-02-15.out | grep ERROR

sed -n ‘/^2022-02-15 10:00:/,/^2022-02-15 11:00:/p’ catalina.2022-02-15.out | grep S2ERROR (第二次反查失败)

^表示匹配每个的开头.
*
表示匹配任意数量任意字段.
sed 工具命令使用时所指定的具体时间一定要在日志中存在,否则啥也抓不到.所以不确定日志中有没有这个时间的记录是,可以用*模糊时间来抓取.

一行一行的读取指定的文件, 以空格作为分隔符,打印第一个字段:
cat file1.txt |grep ERROR|awk ‘{print $1}’

`` 反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量。

你可能感兴趣的:(linux,服务器)