dockerfile
FROM bash
COPY logtail.sh /usr/bin/logtail.sh
RUN chmod +x /usr/bin/logtail.sh
ENTRYPOINT ["/usr/bin/logtail.sh"]
logtail.sh
#!/usr/bin/env bash
if [ $# -lt 1 ]; then
echo "输入一个日志目录,用于监控此目录下的日志文件(目录结尾不要/)"
exit 1
fi
# 获取/var/log目录下所有以.log结尾的文件名,并保存到数组中
logs=(${1}/*.log)
# 执行tail命令跟踪每个文件
for log in "${logs[@]}"
do
tail -n+1 -F "$log" &
done
# 等待新的文件出现,并将新文件加入到tail命令中
while true
do
new_logs=(${1}/*.log)
for log in "${new_logs[@]}"
do
if [[ ! "${logs[@]}" =~ "${log}" ]]
then
tail -n+1 -F "$log" &
logs+=("$log")
fi
done
sleep 10
done
Content type
Image
Digest
sha256:3f62bcb3d…
Size
5.3 MB
Last updated
over 3 years ago
docker pull r8112013/logtail