一、快速根据关键字定位错误信息
grep
在 Linux 系统中,可以使用 grep
命令来查找日志文件中包含特定关键字的行。假设你的日志文件路径为 /var/log/myapp.log
,你想要查找包含关键字 "abc"
的日志内容,可以按照以下步骤操作:
如果你很明确要找的内容在某一个文件xxx.log
中,可以使用下面两条命令输出内容所在行号:
cat xxx.log |grep -n "xxx"
或
grep -n "xxx" xxx.log
如果你有大量的日志文件,不确定要找的东西在哪里,可以使用递归搜索,这条命令可以快速找到所有含关键字的行
grep -r -n "xxx" .
- -r :递归搜索,即搜索当前目录及其子目录中的所有文件。
- . :表示当前目录。
- -n:输出行号
这个命令会在当前文件夹及其所有子文件夹中的所有文件内搜索包含“xxxx”这段文字的行,并将结果输出。
找到行号后,通过下一条命令 直接输出当前行号下的日志
这个命令是用来查看一个日志文件 xxx.log
中特定范围的行。从第 501 行开始,显示接下来的 100 行日志
tail -n +501 xxx.log | head -n 100
这样可以更快速更精准的定位到关键日志,而不是去打开日志文件来搜索,或者二次触发bug,来查看日志,这些命令能够帮助你更高效地查找和分析日志文件中的特定信息。
二、动态实时查看日志
tail 命令
tail -f xxx.log
实时展示日志末尾内容,默认最后10
行,相当于增加参数 -n 10
tail -f server.log
查看日志正数20行内容
tail -n +20 xxx.log
cat 命令
cat
区别于tail
是对日志进行全文搜索,其中-n
的作用是显示行号
cat -n xxx.log | grep "xxx"
-C
选项来显示检索结果的前后几行,-A
选项展示检索结果后几行,-B
选项展示检索结果前几行
cat -n xxx.log | grep -C 5 'xxx'
less 命令
less
命令多用于读取文本文件,也可用于读取实时被更改的文件。ctrl +c
中断实时读取显示,按 q
会退出less
视图,选项 +F
可以实时跟踪文件的更改:
less +F xxx.log
第一步:打开日志文件
less xxx.log
第二步:定位到日志文件的最后一行:
shift+g 移动到最后一行
第三步:往前一页一页翻页查看
ctrl+b
1.全屏导航
ctrl + F - 向前移动一屏
ctrl + B - 向后移动一屏
ctrl + D - 向前移动半屏
ctrl + U - 向后移动半屏
vim编辑模式
进入编辑日志文档
vim xxx.log
正向查找,配合n
键可以将光标移动到下一个符合条件的地方
/关键字
反向查找,配合shift + n
键可以将光标移动到下一个符合条件的地方
?关键字
三、 常用监控命令
1. free 命令
free
命令是Linux系统中用于显示内存使用情况的一个常用工具。它提供了关于系统内存使用的详细信息,包括物理内存(RAM)和虚拟内存。当你在终端中运行 free
命令时,它会显示几个与内存使用相关的值。以下是这些值的含义:
total
:表示系统中物理内存(RAM)的总量,单位可以是千字节(KB)、兆字节(MB)或吉字节(GB)。used
:显示当前正在被各种进程和操作系统本身使用的物理内存量。free
:表示当前未被使用的物理内存量。shared
:表示多个进程共享的内存量。buffers
:显示用于缓冲磁盘I/O操作的内存量。cache
:表示用于缓存从磁盘或其他存储设备频繁访问的数据的内存量。available
:表示估计的可用内存量,用于新进程分配。它考虑到了用于缓冲和缓存的内存,如果需要,可以被其他应用程序释放。
常用参数:
-b
以Byte为单位显示内存使用情况。-k
以KB为单位显示内存使用情况。-m
以MB为单位显示内存使用情况。-h
以比较人性化的方式显示内存使用情况。-o
不显示缓冲区调节列。-s
<间隔秒数> 持续观察内存使用状况。-t
显示内存总和列。-V
显示版本信息
free
命令中的信息都来自于 /proc/meminfo
文件。/proc/meminfo
文件包含了更多更原始的信息
2.top命令
实时监控系统的运行状态,并且可以按照cpu及内存等进行排序
top
命令是 Linux
和其他类 Unix
系统上常用的实时系统监控工具,它提供了一个动态的、交互式的实时视图,显示系统的整体性能信息以及正在运行的进程的相关信息。这个命令是系统管理员最重要的工具之一,被广泛用于监视服务器的负载。top
命令是一个交互命令,在运行 top
的时候还可以运行很多命令。
命令行选项
-d
<秒数>:指定top命令的刷新时间间隔,单位为秒。-n
<次数>:指定top命令运行的次数后自动退出。-p
<进程ID>:仅显示指定进程ID的信息。-u
<用户名>:仅显示指定用户名的进程信息。-H
:在进程信息中显示线程详细信息。-i
:不显示闲置(idle)或无用的进程。-b
:以批处理(batch)模式运行,直接将结果输出到文件。-c
:显示完整的命令行而不截断。-S
:累计显示进程的CPU使用时间。
显示信息
总体系统信息:包括系统的运行时间和平均负载、当前运行的进程和线程数目、总体CPU使用率和各个核心的使用情况、总体内存使用情况、可用内存和缓存。
进程信息:包括进程的标识符、运行进程的用户名、进程的优先级、进程的优先级调整值、进程使用的虚拟内存大小、进程实际使用的物理内存大小、进程共享的内存大小、进程占用CPU的使用率、进程占用内存的使用率、进程的累计CPU时间。
功能和交互操作
按键命令:在top运行时可以使用一些按键命令进行操作,如按下"k"可以终止一个进程,按下"h"可以显示帮助信息等。
排序:可以按照CPU使用率、内存使用率、进程ID等对进程进行排序。
刷新频率:可以设置top的刷新频率,以便动态查看系统信息。
实例
显示进程信息:top
显示完整命令:top -c
以批处理模式显示程序信息:top -b
以累积模式显示程序信息:top -S
设置信息更新次数:top -n 2(表示更新两次后终止更新显示)
设置信息更新时间:top -d 3(表示更新周期为3秒)
显示指定的进程信息:top -p 139(显示进程号为139的进程信息,CPU、内存占用率等)
显示更新十次后退出:top -n 10
使用者将不能利用交谈式指令来对行程下命令:top -s