如何将远程txt文件视为流?

如何将远程txt文件视为流?

Web 服务将其输出写入文本文件。

我可以通过以下方式获取该日志:

curl -u user:password -k https://log.my-app.com/log.2016-04-04.txt

然而,这始终只获取当前的“完整”文件,即使它仍在写入中。

我想获取远程 txt 文件,就像它是一个流一样,并让它在一分钟后不断重新获取自身,但只显示更新的内容。

使用curl可以实现类似的功能吗?

答案1

您正在寻找-C --continue-at-f --fail参数。

curl -f -# -u user:password -k -C - -O https://log.my-app.com/log.2016-04-04.txt

如果没有-f输出文件,则会附加来自 416(无效范围)错误的 html。

答案2

您可以curl -C -在循环中使用它来仅获取已添加的内容,并tail -f在本地文件上使用来监视新数据。远程服务器必须允许这种访问。

如果没有,请使用N=$(stat -c %s file)本地文件来查找其大小,然后通过管道传递curltail -c +N | tee -a file以将新内容发送到文件和标准输出。

相关内容