出于安全考虑(我是开发人员),我没有访问我们的生产服务器的命令行访问权限,日志文件是在那里写入的。然而,我可以通过HTTP访问这些日志文件。是否有一种类似于“tail -f”的实用程序,只使用HTTP就可以“跟踪”普通文本文件?
响应将包含资源的最后500个字节。您可以获取它,然后将其解析为行等。我不知道是否有任何现成的客户端可以为您完成此操作-我会编写一个脚本来完成这项工作。Range: bytes=-500
您可以使用小型Java工具,使用Apche HTTP库通过Http读取日志文件。
HttpClient client = HttpClientBuilder.create().build();
HttpGet request = new HttpGet(uri);
HttpResponse response = client.execute(request);
BufferedReader rd = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
String s = "";
while ((s = rd.readLine()) != null) {
//Process the line
}
你可以使用 PsExec 在远程计算机上执行命令。 Windows 的 tail 命令可以在 http://tailforwin32.sourceforge.net/ 找到。
如果必须使用 HTTP,你可以编写一个轻量级的 Web 服务来轻松实现这一点。 例如:读取指定文件中从第 0 行到第 200 行的文本。
output.txt
进行比较,然后将差异追加到同一文件中。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
更新:
我在这里找到了更好的使用wget的解决方案:
while true; do wget -ca -o /dev/null -O output.txt "$URL"; sleep 2; done