• tail命令的特殊用法


    tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ] 

    参数解释: 
    -f 该参数用于监视File文件增长。 
    -c Number 从 Number 字节位置读取指定文件 
    -n Number 从 Number 行位置读取指定文件。 
    -m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。 
    -b Number 从 Number 表示的512字节块位置读取指定文件。 
    -k Number 从 Number 表示的1KB块位置读取指定文件。 
    File 指定操作的目标文件名称 
    上述命令中,都涉及到number,假设不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾部開始计算。 
    tail可运行文件一般在/usr/bin/以下。

    这里我们要说的是 tail -f 和 tail -F 的区别:

    在使用 tail -f 和 tail -F 同时打开一个日志文件,然后写入日志文件,最后更新日志文件,观察实时日志的变化

    tail -f 

    [root@aliyun var]# tail -f test.log 
    hello
    world

    等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止

    tail -F    

    [root@aliyun var]# tail -F test.log 
    hello
    world
    tail: ‘test.log’ has become inaccessible: No such file or directory
    tail: ‘test.log’ has appeared;  following end of new file
    日志文件更新后

    等同于--follow=name  --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪

    在 flume exec source 中切记使用 -F

    但是也有一种情况例外

    当需求是实时查看文件的变化并且要显示文件的中的后n行只能使用 tail -nf

    [root@aliyun var]# tail -5f test.log
    日志文件更新后

    因为没有tail -nF这种写法

    [root@aliyun var]# tail -5F test.log
    tail: option used in invalid context -- 5
    学习中,博客都是自己学习用的笔记,持续更新改正。。。
  • 相关阅读:
    ${}和#{}的区别,使用场景
    Mysql 面试高频题:innodb,myisam(待更)
    Python 基础
    Python 基础
    python之input(), raw_input()
    Python之回调魔法
    python之setattr,getattr,hasattr
    python之类私有成员
    python之函数式编程
    python之类定义
  • 原文地址:https://www.cnblogs.com/Tunan-Ki/p/11749768.html
Copyright © 2020-2023  润新知