Linux系统查看日志:
tail -f admin_info.log 查看文件的末尾内容【通常是10行】, -f:实时监控日志文件的最新内容。
tail -n 100 admin_info.log 查询日志文件的最后100行。 -n:指定查询的行数。
tail -f -n 20 admin_info.log 实时查看日志最后20行。
tail -f /var/log/syslog | grep "error" | grep "database" 只显示包含 “error” 和 “database” 关键词的行【两个词在日志里的同一行】,适合单个关键词模糊的时候使用。
tail /var/log/syslog | grep -v "debug" 显示 /var/log/syslog 文件中除了包含 “debug” 关键词之外的所有行。
tail -100f admin_info.log | grep '2024-06-26 15:[0-9]' 查询6月26日15:00~15:09的最新100行日志。
tail -f /var/log/syslog /var/log/messages 同时追踪 /var/log/syslog 和 /var/log/messages 这两个文件的更新。
head -n 20 admin_info.log 显示文件的开头20行信息。
cat file1 file2 > mergedfile 把 file1 和 file2 的内容合并,并将结果保存到 mergedfile 中。
tac zzz.txt 使用 tac 命令反向显示其内容。
less 命令中的操作
上下箭头:向上、向下滚动一行。
空格:向下翻页。
b:向上翻页。
g:跳到文件开头。
G:跳到文件结尾。
/:接着输入要搜索的字符串,进行向下搜索。
?:接着输入要搜索的字符串,进行向上搜索。
n:重复前一个搜索(与 / 或 ? 有关)。
N:反向重复前一个搜索(与 / 或 ? 有关)。
q:退出 less。
less -N file.txt 使用 -N 参数可以在查看文件时同时显示行号。
问题排查,查看日志常用命令:
方式1:先搜关键字,根据关键字所在行号,进行行号范围之间的日志查找
cat -n admin_info.log | grep "1719372135968" 查看包含关键字的日志行,并显示行号(-n)
cat -n example.txt | grep -i "keyword" 在搜索时忽略大小写,你可以使用 grep 的 -i 参数
sed -n '5,10p' admin_info.log 只查看文件的第5行到第10行
方式2:先根据关键词来查,查到后使用上下箭头,查看日志上下文,更方便。
less file.txt
/keyword
在 less 中打开 file.txt 后,输入 / 并跟随要搜索的字符串(如 keyword),会高亮显示,然后按回车键进行向下搜索。
K8S环境查询日志时:
查UAT环境:如 kubectl get pods -n sit -owide
查PROD环境:如 kubectl get pods -n prod -owide
通过以上命令可以查到后台服务器产生的实时及历史日志具体存放到哪台服务器了【可以看到NODE值,即存放日志服务器的私有IP,如192.168.0.19】。
也可以通过如下命令查询实时日志:
kubectl logs -f -n prod management-85b6xxx【服务名称】
kubectl logs -f xxxx【服务名称】 -n sit