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)
它在网络服务器上不是很友好。您可以将 替换为 ,true
以sleep 1
减少资源占用。
就像,当你完成观察输出时,即使输出已经完成,tail -f
你也需要这样做。^C