..
tail命令的使用
介绍
tail (n. 尾巴; v. 跟踪),其作用就是输出某个文件的末尾 n 行。但是更多的时候,我们用它来实时跟踪日志文件的输出(加上 -f
参数)。
用例
# 1) 经典用例,使用 -f 实时监控日志文件的末尾输出,-f 意为 follow
$ tail -f /var/logs/xxx.log
# 2) 去除内容的前几行内容,需要使用 -n 参数
# 查询 jenkins 的 slave pods,然后想配置 awk 与 xargs 删除这些pods。但是的内容第一行是 header
$ kubectl get pods -l jenkins=slave
NAME READY STATUS RESTARTS AGE
build-image-kaniko-15aad1b2-3113-416c-b1ca-96d5fbf04df9-g-687d1 2/2 Running 0 3d
build-image-kaniko-15aad1b2-3113-416c-b1ca-96d5fbf04df9-g-bclrh 1/2 NotReady 0 3d
glci-16fw3-xl39s 1/2 NotReady 0 3d1h
zgtest-v7w62-5w6gm 1/2 NotReady 0 3d19h
zgtest-x4q4l-qwxpl 1/2 NotReady 0 3d19h
# 配合 tail -n +2 去除第一行的内容。 -n --lines 表示从第n行开始,tail 还有
# -c --bytes 表示 从第几个 bytes 开始,-b --blocks 表示从第几个 block 开始,但比较少用。
# 而后面的 +2 表示从第二行(包含第二行)开始输出,反之 -2 则表示从倒数第二行开始输出。
$ kubectl get pods -l jenkins=slave | tail -n +2
build-image-kaniko-15aad1b2-3113-416c-b1ca-96d5fbf04df9-g-687d1 2/2 Running 0 3d
build-image-kaniko-15aad1b2-3113-416c-b1ca-96d5fbf04df9-g-bclrh 1/2 NotReady 0 3d
glci-16fw3-xl39s 1/2 NotReady 0 3d1h
zgtest-v7w62-5w6gm 1/2 NotReady 0 3d19h
zgtest-x4q4l-qwxpl 1/2 NotReady 0 3d19h
扩展
相关联的命令还有 head
输出内容的前 n 行。更高级的是 sed
命令,但是也更复杂,简单场景没有 head 与 tail 语义清晰。