【问题标题】:following a log file over http通过 http 跟踪日志文件
【发布时间】:2010-12-11 08:38:28
【问题描述】:

出于安全原因(我是一名开发人员),我无法通过命令行访问写入日志文件的生产服务器。我可以,但是通过 HTTP 访问这些日志文件。是否有一个“tail -f”方式的实用程序可以“跟随”仅使用 HTTP 的纯文本文件?

【问题讨论】:

    标签: http logging text utilities tail


    【解决方案1】:

    如果 HTTP 服务器接受返回部分资源的请求,您可以这样做。例如,如果 HTTP 请求包含标头:

    范围:字节=-500

    响应将包含资源的最后 500 个字节。您可以获取它,然后将其解析为行等。我不知道有任何现成的客户端会为您执行此操作 - 我会编写一个脚本来完成这项工作。

    您可以使用Hurl 来试验标头(来自公开可用的资源)。

    【讨论】:

    • +1 这很有帮助。我曾想过使用 HEAD 方法来获取资源的大小,以查看是否添加了任何新内容。再加上特定范围内的 GET,我可能会有所收获。谢谢!
    【解决方案2】:

    我出于同样的目的编写了一个 bash 脚本。你可以在这里找到它https://github.com/maksim07/url-tail

    【讨论】:

      【解决方案3】:

      您可以使用小型 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
          }
      

      【讨论】:

        【解决方案4】:

        您可以使用PsExec 在远程计算机上执行命令。 windows的tail命令可以在http://tailforwin32.sourceforge.net/找到

        如果必须是 HTTP,您可以编写一个轻量级的 Web 服务来轻松实现。 例如,从第 0 行到第 200 行读取指定文件中的文本。

        【讨论】:

        • 我无法远程执行任何操作,这会使安全人员中风。在我尝试推出自己的产品之前,我希望某些东西已经存在。
        【解决方案5】:

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

        我想在我的 Jenkins 管道中流式传输 AWS 放大日志

        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
        

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

        【讨论】:

        • 可以更新 wget 选项以使用 curl 代替吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-09
        • 2014-06-16
        • 1970-01-01
        • 1970-01-01
        • 2017-06-27
        • 1970-01-01
        相关资源
        最近更新 更多