7

セキュリティ上の理由から(私は開発者です)、ログファイルが書き込まれる本番サーバーへのコマンドラインアクセスがありません。ただし、HTTP経由でこれらのログファイルにアクセスすることはできます。HTTPのみを使用してプレーンテキストファイルを「追跡」できる「tail-f」のようなユーティリティはありますか?

4

5 に答える 5

6

これは、HTTPサーバーがリソースの一部を返す要求を受け入れる場合に実行できます。たとえば、HTTPリクエストにヘッダーが含まれている場合:

範囲:bytes = -500

応答には、リソースの最後の500バイトが含まれます。それをフェッチして、行などに解析することができます。これを実行する既製のクライアントはわかりません。ジョブを実行するためのスクリプトを作成します。

Hurlを使用して、(公開されているリソースからの)ヘッダーを試すことができます。

于 2009-11-02T09:24:07.843 に答える
1

同じ目的でbashスクリプトを作成しました。ここで見つけることができますhttps://github.com/maksim07/url-tail

于 2014-03-04T12:14:11.977 に答える
1

小さなJavaユーティリティを使用して、ApcheHTTPライブラリを使用して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
    }
于 2014-09-19T08:42:32.170 に答える
0

PsExecを使用して、リモートコンピューターでコマンドを実行できます。Windowsのtailコマンドは、http://tailforwin32.sourceforge.net/にあります。

HTTPである必要がある場合は、それを簡単に実現するための軽量Webサービスを作成できます。たとえば、指定されたファイル内の0行目から200行目までのテキストを読み取ります。

于 2009-10-29T18:45:47.823 に答える
0

output.txt2秒ごとにURLコンテンツをフェッチし、ローカルファイルと比較してから、同じファイルに差分を追加する簡単なbashスクリプトを作成しました。

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

于 2020-06-12T15:48:06.813 に答える