linux、docker容器缺少tailf命令,解决方案。

两种方案

第一种(推荐)

如果宿主服务器上面有tailf命令,可以直接到宿主机的 /usr/bin/ 目录下,寻找tailf文件

在这里插入图片描述
把该目录下的文件复制到指定的docker容器的 /usr/bin/ 目录下,然后就可以使用tailf命令了。
复制命令:docker cp /usr/bin/tailf 9c83a80fbeda:/usr/bin

				命令解析:docker cp  			   //复制命令
 						 /usr/bin/tailf    		   //服务器文件路径
 						 9c83a80fbeda              //容器id(可以通过docker ps 命令查看CONTAINER ID)
 						 /usr/bin                  //容器中的路径(用于存放复制文件)

在这里插入图片描述
如果出现 异常信息:-bash: /usr/bin/tailf: Permission denied
使用chmod指令修改文件权限
命令:chmod 777 usr/bin/tailf
然后就可以了

第二种方案

与第一种方案类型,自己写一个脚本文件,我写了一个简单的,可以直接用,很有瑕疵,文件名为tailf,没有后缀。

# !/bin/bash  
if [ $# -eq 1 ]; then
  tail -f -n -10 $1
elif [ $# -eq 2 ]; then
  tail -f -n $1 $2
else
  echo "Command line format tailf -num filepath, for example tailf -100 log.log"
fi

这个脚本主要判断有几个参数,如果有一个默认输出10行,如果有两个,则输出自定义的行数。

我自己的脚本文件是放到 /etc/init.d/ 目录下的,把这个脚本文件复制到docker容器中的相同目录下。
执行命令:docker cp /etc/init.d/tailf 9c83a80fbeda:/etc/init.d

进入容器:docker exec -it 9c83a80fbeda /bin/bash

			命令解析:docker exec        //进入容器命令
					  -i: 交互式操作。
                      -t: 终端。
                      9c83a80fbeda: 容器id。
                     /bin/bash:命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

进入容器后
给脚本文件赋予执行权限
命令:chmod +x /etc/init.d/tailf

然后进入容器的/usr/bin/目录下
命令:cd /usr/bin

建立软链接,这个操作就是在/usr/bin目录下建立指向/etc/init.d/tailf的tailf文件。
想想详细了解软链接 请看菜鸟教程 https://www.runoob.com/linux/linux-comm-ln.html
命令:ln -s /etc/init.d/tailf
在这里插入图片描述
效果相同:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值