tailf 命令

| 选择喜欢的代码风格  

tailf 命令补充说明:


tailf 命令几乎等同于 tail -f,严格说来应该与 tail --follow=name 更相似些。当文件改名之后它也能继续跟踪,特别适合于日志文件的跟踪(follow the growth of a log file)。与 tail -f 不同的是,如果文件不增长,它不会去访问磁盘文件tailf 特别适合那些便携机上跟踪日志文件,因为它能省电,因为减少了磁盘访问。tailf 命令不是个脚本,而是一个用 C 代码编译后的二进制执行文件,某些 Linux 安装之后没有这个命令。

tailf 和 tail -f 的区别

  • tailf 总是从文件开头一点一点的读, 而 tail -f 则是从文件尾部开始读。
  • tailf check 文件增长时,使用的是文件名,用 stat 系统调用;而 tail -f 则使用的是已打开的文件描述符。:tail 也可以做到类似跟踪文件名的效果;
  • 但是tail总是使用fstat系统调用,而不是stat系统调用;结果就是:默认情况下,当tail的文件被偷偷删除时,tail是不知道的,而tailf是知道的。

tailf 命令语法:


tailf logfile # 动态跟踪日志文件logfile,最初的时候打印文件的最后10行内容。

tailf 命令选项:


-n, --lines NUMBER  # 输出最后数行
-NUMBER             # 与NUMBER相同 `-n NUMBER'
-V, --version       # 输出版本信息并退出
-h, --help          # 显示帮助并退出

tailf 命令参数:


目标:指定目标日志。

tailf 命令实例


$ tailf request_IP_1502.log 
{"time":"2019-09-24 15:02:59","IP":"202.99.16.3"}
{"time":"2019-09-24 15:02:59","IP":"67.45.17.4"}
{"time":"2019-09-24 15:02:59","IP":"201.9.6.5"}
{"time":"2019-09-24 15:02:59","IP":"200.55.1.6"}
{"time":"2019-09-24 15:02:59","IP":"202.23.7.7"}
{"time":"2019-09-24 15:02:59","IP":"39.11.20.8"}
{"time":"2019-09-24 15:02:59","IP":"202.6.1.9"}
{"time":"2019-09-24 15:02:59","IP":"22.9.19.10"}
{"time":"2019-09-24 15:02:59","IP":"27.9.20.11"}
{"time":"2019-09-24 15:02:59","IP":"102.99.16.12"}
...

显示文件最后 5 行内容:

$ tailf -n 5 request_IP_1502.log 
{"time":"2019-09-24 15:02:59","IP":"202.99.16.3"}
{"time":"2019-09-24 15:02:59","IP":"202.99.16.3"}
{"time":"2019-09-24 15:02:59","IP":"202.99.16.3"}
{"time":"2019-09-24 15:02:59","IP":"202.99.16.3"}
{"time":"2019-09-24 15:02:59","IP":"202.99.16.3"}

tail -f 与 tail -F 与 tailf 三者区别


tail -f 等于 --follow=descriptor,根据文件描述进行追踪,当文件改名或删除后,停止追踪。

tail -F 等于 --follow=name == retry,根据文件名字进行追踪,当文件改名或删除后,保持重试,当有新的文件和他同名时,继续追踪

tailf 等于 tail -f -n 10tail -f-F 默认也是打印最后 10 行,然后追踪文件),与 tail -f 不同的是,如果文件不增长,它不会去访问磁盘文件,所以 tailf 特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电。

tailf 命令扩展阅读:




发表评论