前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2021-01-09:linux中,某一个实时日志通过什么命令查?

2021-01-09:linux中,某一个实时日志通过什么命令查?

原创
作者头像
福大大架构师每日一题
修改2021-01-11 10:28:01
6100
修改2021-01-11 10:28:01
举报
文章被收录于专栏:福大大架构师每日一题

福哥答案2020-01-09:

答案来自此链接:

1.tail

tail -f

首先就是 tail -f,tail 命令是实时显示日志文件的最常用解决方案,加上 -f 参数可以实时拉取日志最新的更新:

tail -f /var/log/access.log

同时,默认是查看最后 10 行,可以加上行数增加查看的最后的行数,例如查看最后 100 行:

tail -00f /var/log/access.log

并且,tail 可以使用匹配符匹配多个文件,例如:

tail -100f /var/log/access*.log

如果你的日志会滚动,那么可以使用 -F 参数,这样会在文件滚动之后追踪新文件,而不是老的文件。

tail -F /var/log/access.log。

底层原理是:

tail.c

/* Tail N_FILES files forever, or until killed.

The pertinent information for each file is stored in an entry of F.

Loop over each of them, doing an fstat to see if they have changed size,

and an occasional open/fstat to see if any dev/ino pair has changed.

If none of them have changed size in one iteration, sleep for a

while and try again. Continue until the user interrupts us. */

static void tail_forever (struct File_spec *f, size_t n_files, double sleep_interval)

{

}

简而言之就是先将匹配到的文件加入到数组中,定时遍历这个数组,利用fstat函数检查每个文件的大小变化,如果有变化,就读取上次记录的大小到当前记录的大小的文件内容,并输出。注意,如果文件变化的越快(但是也不用太担心,硬盘写入没那么快,不可能超过内存写入速度),占用的内存越多。

2.less命令

less 命令之后键入 Shift+F,这样可以实时追踪最新更新。但是,这样会把文件内容的大部分载入内存中,如果日志文件很大,会吃掉很多内存,不推荐这种做法。


评论

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档