Linux 查找日志命令大全

小弟最近在帮忙排查生产环境上的问题,所以需要看生产上的日志,好久没摸过服务器了,特此记录一下使用的Linux命令。

grep命令

grep命令是在linux下看日志时经常会用到的

grep:查找文件中包含指定文本的命令

比如:grep '123456789' 20211018.log ---输出2021101801.log这个日志下包含123456789的记录

当然grep肯定不止这么简单,下面写下常用到的~

grep '123456789' * ---输出当前文件夹下所有包含123456789'的记录

比如当前目录 /home/logs/log-20211018,查找的是log-20211018文件夹下所有且包含123456789的记录

grep -r '123456789' * ---输出当前目录以及子目录下所有包含123456789'的记录,r=Recursive递归

比如当前目录 /home/logs/log-20211018,查找的是当前目录和子目录下所有且包含123456789的记录

grep -l -r ‘energywise’ * ---输出当前目录及其子目录下包含'123456789'行的记录,但是不显示匹配的行,只显示匹配的文件。

grep -i 不分区大小写

grep -v 显示除匹配以外的内容(就是不包含的意思)

grep -n 显示匹配的行并行显示当前行数是多少

grep -c 显示匹配的行数总和(注意是行数,如果一行匹配到两个也算一行)

tail命令

tail命令用在测试环境比较多,可以查看实时日志信息,便于定位错位。

tail -f 20211018.log ---实时查看20211018.log日志输出

tail -n 100 20211018.log ---输出20211018.log最新的100行

head命令

head命令用的不多,主要是看文件的头几行吧

hear -n 50 20211018.log ---输出20211018.log前50行记录

sed命令

生产环境的日志文件一般都是非常大的,要在一个很大的日志中搜索或者下载某部分内容相当不容易,此时可以用sed命令!

输出某一段时间内的日志(日志输出需要有时间的才可以)

sed -n '/2021-10-18 08:00/,/2021-10-18 10:00/p' 20211018.log

输出某一段时间包含“xiaohu”的行数

sed -n '/2021-10-18 08:00/,/2021-10-18 10:00/p' 20211018.log | grep -c "xiaohu"

将某段时间内的日志保存到一个新文件中

sed -n '/2021-10-18 08:00/,/2021-10-18 10:00/p' 20211018.log > newlog.log

awk命令

这个命令很强大,目前我也没用到过,之后会单独学习一下

上一篇:js导出数据为excel


下一篇:学习笔记_算盘