徐々にファイルを読む

徐々にファイルを読む

最後に読んだ後、更新されたファイルの一部を読む必要があります。つまり、最後に 2016-07-26T01:30 にファイルを読み込み、100 個のレコードがファイルで更新される 2016-07-26T02:30 に再度実行するには、Get を読み取る必要があります。これは100レコードの完全なファイルです。

ファイル形式は次のとおりです。

[2016-07-26T16:26:31.953-04:00] [AnalyticProviderServices0] [ERROR] [] [oracle.EPMOHPS] [tid: 17] [userId: <anonymous>] [ecid: 0000LGXnLUEComOpyg4EyW1N4iIi000002,1:28342] [APP: APS#11.1.2.0] Unable to resolve 'jdbc.EPMSystemRegistry'. Resolved 'jdbc'[[
[2016-07-26T16:26:31.954-04:00] [AnalyticProviderServices0] [WARNING] [] [oracle.EPMOHPS] [tid: 17] [userId: <anonymous>] [ecid: 0000LGXnLUEComOpyg4EyW1N4iIi000002,1:28342] [APP: APS#11.1.2.0] Failure while getting the active Essbase node for cluster [SWESSPROD1]. Runtime Provider Services Error: [Unable to resolve 'jdbc.EPMSystemRegistry'. Resolved 'jdbc']

ベストアンサー1

ログファイルが実行されるたびに、ログファイルを徐々に読み取るRe-Tailまたは「retail」というコマンドラインユーティリティ(2003年以降)があります。

たとえば、これは毎時間実行されるクローンジョブに役立ちます。

Re-Tail は、実行中のファイルごとに「オフセットファイル」にステータスを保存し、最後の行番号とその行番号にテキストを保存します。

次回プログラムが実行されると、保存された行番号を見つけて内容を比較しようとします。一致するものがあれば、次の行から始めてファイルの残りの部分を出力します。ディスク上のファイルの行数が少ない場合、または行の内容が一致しない場合は、ファイルが消去または回転されたと見なされ、その場合は最初の行から始まります。

最後に、Retailは保存された行番号と内容を更新します。

ソフトウェアは次の場所にあります。http://xjack.org/retail/

私はRetailをrootとして実行するときに保存された状態を/var/lib/retailに保存するのが好きです。たとえば、1台のコンピュータでは、SSHログインのレポートを生成するために、次のコマンドラインを含むスクリプトを使用して1時間ごとに小売を実行します。

/usr/local/bin/retail -p /var/lib/retail/ /var/log/secure >"$tempfile"

頑張ってください!

おすすめ記事