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
以将新内容发送到文件和标准输出。