A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
-bash: tailf: command not found #Debian apt-get install util-linux #Ubuntu apt-get install util-linux #Alpine apk add util-linux #Arch Linux pacman -S util-linux #Kali Linux apt-get install util-linux #CentOS yum install util-linux #Fedora dnf install util-linux #OS X brew install util-linux #Raspbian apt-get install util-linux #Docker docker run cmd.cat/tailf tailf
tailf 命令几乎等同于 tail -f
,严格说来应该与 tail --follow=name
更相似些。当文件改名之后它也能继续跟踪,特别适合于日志文件的跟踪(follow the growth of a log file)。与 tail -f
不同的是,如果文件不增长,它不会去访问磁盘文件。tailf 特别适合那些便携机上跟踪日志文件,因为它能省电,因为减少了磁盘访问。tailf 命令不是个脚本,而是一个用 C 代码编译后的二进制执行文件,某些 Linux 安装之后没有这个命令。
tailf 和 tail -f 的区别
tail -f
则是从文件尾部开始读。tail -f
则使用的是已打开的文件描述符。注:tail 也可以做到类似跟踪文件名的效果; tailf logfile # 动态跟踪日志文件logfile,最初的时候打印文件的最后10行内容。
-n, --lines NUMBER # 输出最后数行 -NUMBER # 与NUMBER相同 `-n NUMBER' -V, --version # 输出版本信息并退出 -h, --help # 显示帮助并退出
目标:指定目标日志。
$ 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 等于 --follow=descriptor,根据文件描述进行追踪,当文件改名或删除后,停止追踪。
tail -F 等于 --follow=name == retry,根据文件名字进行追踪,当文件改名或删除后,保持重试,当有新的文件和他同名时,继续追踪
tailf 等于 tail -f -n 10(tail -f
或 -F
默认也是打印最后 10 行,然后追踪文件),与 tail -f 不同的是,如果文件不增长,它不会去访问磁盘文件,所以 tailf 特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电。