tail -f 等效于 URL

mun*_*nch 10 monitoring web http logging logfiles

我想监视我的应用程序的日志文件,但它不能在本地运行,而是在 SaaS 平台上运行,并通过 HTTP 和 WebDAV 公开。因此,对 URL 有效的 tail -f 对我来说效果很好。

PS 如果您知道可以通过 HTTP 监视远程文件的任何其他工具,它也可能有所帮助。谢谢

ter*_*don 12

可能有一个特定的工具,但您也可以使用 wget 来完成。打开终端并运行以下命令:

while :; do 
    sleep 2
    wget -ca -O log.txt -o /dev/null http://yoursite.com/log
done
Run Code Online (Sandbox Code Playgroud)

这将每两秒钟下载一次日志文件并将其保存到log.txt将输出附加到已有的内容中(-c意味着继续下载并-a意味着将输出附加到给定的文件名)。该-o重定向错误消息/dev/null/

所以,现在你有一个 log.txt 的本地副本并且可以tail -f在它上面运行:

tail -f log.txt 
Run Code Online (Sandbox Code Playgroud)


小智 5

我在这里用一个完整的 shell 脚本回答了同样的问题,该脚本将 URL 作为参数,然后tail -f就是它。这是该答案的逐字副本:


这将做到这一点:

#!/bin/bash

file=$(mktemp)
trap 'rm $file' EXIT

(while true; do
    # shellcheck disable=SC2094
    curl --fail -r "$(stat -c %s "$file")"- "$1" >> "$file"
done) &
pid=$!
trap 'kill $pid; rm $file' EXIT

tail -f "$file"
Run Code Online (Sandbox Code Playgroud)

它在网络服务器上不是很友好。您可以将 替换为 ,truesleep 1减少资源占用。

就像,当你完成观察输出时,即使输出已经完成,tail -f你也需要这样做。^C