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