有没有办法从网址执行“tail -f”?

时间:2015-07-08 13:06:29

标签: linux bash tail

我目前使用tail -f来监控日志文件:这样我就可以通过自动清理控制台来监控Web服务器。

现在,说网络服务器被转移到另一台主机,我没有shell权限。 不过我有一个.txt网络路径,最后是一个不断更新的日志文件。

所以,我想做一些像tail -f这样的东西,但是在那个url上。 它有可能吗?最后“在linux中一切都是文件”所以..

2 个答案:

答案 0 :(得分:4)

您可以在watch结合wget的帮助下进行自动刷新。 它不会显示历史记录,例如tail -f,而是更新top之类的屏幕。 命令示例,在屏幕上显示file.txt上的内容,并每五秒更新一次输出:

watch -n 5 wget -qO-  http://fake.link/file.txt

此外,您可以输出n个最后一行,而不是整个文件:

watch -n 5 "wget -qO-  http://fake.link/file.txt | tail"

如果您仍然需要像“tail -f”这样的行为(保留历史记录),我认为您需要编写一个脚本,每次下载日志文件,将其与以前下载的版本进行比较,然后打印新的线。应该很容易。

答案 1 :(得分:0)

我编写了一个简单的bash脚本,每2秒获取一次URL内容,然后与本地文件output.txt进行比较,然后将diff附加到同一文件中

我想在Jenkins管道中流式传输AWS Amplification日志

while true; do comm -13 --output-delimiter="" <(cat output.txt) <(curl -s "$URL") >> output.txt; sleep 2; done

别忘了先创建空文件output.txt文件

: > output.txt

查看流:

tail -f output.txt

原始评论:https://stackoverflow.com/a/62347827/2073339

更新:

我在这里使用wget找到了更好的解决方案:

while true; do wget -ca -o /dev/null -O output.txt "$URL"; sleep 2; done

https://superuser.com/a/514078/603774