リモートtxtファイルをストリームとして処理する方法は?

リモートtxtファイルをストリームとして処理する方法は?

Webサービスは出力をテキストファイルに書き込みます。

次の方法でこのログを取得できます。

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

ただし、これはまだ作成中であっても、常に現在の「完全な」ファイルのみをインポートします。

リモートtxtファイルをまるでストリームのようにインポートし、1分後に引き続き再インポートしますが、更新されたコンテンツのみを表示したいと思います。

カールを使用して同様の機能を取得できますか?

答え1

-C --continue-atあなたはパラメータを探しています-f --fail

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

出力ファイルがない場合は、-f416(誤った範囲)エラーのhtmlが追加されます。

答え2

curl -C -ループ内でそれを使用して追加された項目のみをインポートし、ローカルtail -fファイル内の新しいデータを監視できます。リモートサーバーはこのアクセスを許可する必要があります。

それ以外の場合は、N=$(stat -c %s file)ローカルファイルを使用してサイズを確認し、カールをパイプしてtail -c +N | tee -a file新しいコンテンツをファイルとstdoutに送信します。

関連情報