linux查看日志的多种方法集合
Linux查看日志的命令有多种: tail、cat、tac、head、echo等
tail
参数
命令格式: tail[必要参数][选择参数][文件]
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
# 查询日志尾部最后10行的日志;
[root@orcl2 nacos]# tail -n 10 config.log
# 查询10行之后的所有日志;
tail -n +10 test.log
# 循环实时查看最后1000行记录(最常用的)
[root@orcl2 nacos]# tail -fn 10 config.log
# 配合着grep用
[root@orcl2 nacos]# tail -fn 1000 config.log | grep 'INFO'
# 如果一次性查询的数据量太大,可以进行翻页查看,例如:
# 可以进行多屏显示(ctrl + f 或者 空格键可以快捷键)
[root@orcl2 nacos]# tail -n 4700 config.log | more -100
head
跟tail是相反的head是看前多少行日志
# 查询日志文件中的头10行日志;
[root@orcl2 logs]# head -n 10 catalina.2020-11-24.log
# 结合关键字查询日志
# 查询前200条日志中存在‘Exception’的日志行
[root@orcl2 logs]# head -n 200 catalina.2020-11-24.log | grep 'Exception'
cat
cat 是由第一行到最后一行连续显示在屏幕上
# 一次显示整个文件
[root@orcl2 logs]# cat catalina.2020-11-24.log
# 从键盘创建一个文件
[root@orcl2 logs]# cat > manager1.2020-10-13.log
# 将几个文件合并为一个文件
# 只能创建新文件,不能编辑已有文件
[root@orcl2 logs]# cat catalina.2020-10-13.log catalina.2020-10-15.log > catalina_he.log
# 将一个日志文件的内容追加到另外一个
$cat -n textfile1 > textfile2
[root@orcl2 logs]# cat -n localhost.2020-10-13.log >> localhost.2020-10-15.log
# 清空一个日志文件
$cat : >textfile2
注意:> 意思是创建,>>是追加。千万不要弄混了
more
more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键
more命令从前向后读取文件,因此在启动时就加载整个文件。
> 常用的有H(获得帮助信息),
> Enter(向下翻滚一行),
> 空格(向下滚动一屏),
> Q(退出命令)。
该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:–More–(XX%)
tac
tac 则是由最后一行到第一行反向在萤幕上显示出来
sed
这个命令可以查找日志文件特定的一段 , 根据时间的一个范围查询,可以按照行号和时间范围查询
# 只查看文件的第5行到第10行
[root@orcl2 logs]# sed -n '5,10p' localhost_access_log.2020-10-13.txt
# 按照时间段,注意时间的格式需按照日志中显示的
[root@orcl2 logs]# sed -n '/2020-10-13 16:50:10/,/2020-10-13 16:55:55/p' localhost_access_log.2020-10-13.txt
# 注意时间段是一定存在的,不存在则无数据输出
[root@orcl2 nacos]# sed -n '/2020-11-12 13:50:10.326/,/2020-11-12 15:06:41.487/p' config.log
less
less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查看之前不会加载整个文件。
# 查看日志
less log2013.log
# ps查看进程信息并通过less分页显示
ps -ef |less
# 查看命令历史使用记录并通过less分页显示
history | less
# 浏览多个文件
less log2013.log log2014.log
输入 :n后,切换到 log2014.log
输入 :p 后,切换到log2013.log
参数说明:
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将"tab"键显示为规定的数字空格
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向上翻一页
f 向下翻一页
u 向上滚动半页
d 向下翻半页
h 显示帮助界面
Q 退出less 命令
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
标记导航
当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:
ma - 使用 a 标记文本的当前位置
'a - 导航到标记 a 处
dmesg
dmesg命令用于显示开机信息
echo
用于字符串的输出
# 打印普通字符串
[root@orcl2 ~]# echo 'hello world'
hello world
[root@orcl2 ~]# echo weeqeq
weeqeq
# 显示结果定向至文件
echo "It is a test" > myfile
# 显示命令执行结果
[root@orcl2 ~]# echo `date`
2020年 11月 27日 星期五 14:55:00 CST
日志分类
等级由低到高:debug < info < warn < Error < Fatal;
debug 级别最低,可以随意的使用于任何觉得有利于在调试时更详细的了解系统运行状态的东东;
info 重要,输出信息:用来反馈系统的当前状态给最终用户的;
info 用于打印程序应该出现的正常状态信息, 便于追踪定位;
warn 表明系统出现轻微的不合理但不影响运行和使用;
error 表明出现了系统错误和异常,无法正常完成目标操作。
info 用于打印程序应该出现的正常状态信息, 便于追踪定位;
Fatal, 相当严重,可以肯定这种错误已经无法修复,并且如果系统继续运行下去的话后果严重。
场景
查看某年某月某日某时间的日志?
可使用sed命令
sed -n '/开始时间日期/,/结束时间日期/p' all.log
查看error级别的日志?
tail -100 |grep error
查看最后一百条日志中并过滤出包含error内容的
查看什么用户产生的日志?
[root@orcl2 ~]# lastlog
用户名 端口 来自 最后登陆时间
root pts/3 172.10.22.91 五 11月 27 14:47:03 +0800 2020
bin **从未登录过**
日志存放位置?
[root@orcl2 logs]# ls -l |grep catalina.out
-rw-r--r--. 1 root root 59629815 11月 27 15:08 catalina.out
[root@orcl2 ~]# find logs
logs
logs/nacos
logs/nacos/config.log
logs/nacos/naming.log
如何查看程序运行日志?
ps -ef|grep *** 查看某个进程
查看tomcat日志?
# 查看进程,根据进程得知存储位置
[root@orcl2 ~]# ps -ef | grep tomcat
root 2939596 2939211 0 10:39 pts/1 00:00:00 grep --color=auto tomcat
# 进入程序目录,查看日志
[root@orcl2 logs]# pwd
/zywa/tomcat_8080/logs
# 操作查看日志
[root@orcl2 logs]# tail -fn 100 localhost_access_log.2020-11-24.txt | grep 'info'
172.10.24.193 - - [24/Nov/2020:16:16:44 +0800] "GET /detection/WebSocket/info?t=160606030203 HTTP/1.1" 200 88
参考文章:
https://www.cnblogs.com/shigfdengys/p/11164615.html
https://blog.csdn.net/harry5508/article/details/90041986
https://www.jb51.net/article/179528.htm