FIFOLOG(1) | FreeBSD General Commands Manual | FIFOLOG(1) |
名称
fifolog_create, fifolog_writer, fifolog_reader — fifolog を初期化し、書き込み、シークし、データを抽出します書式
fifolog_create | [ -l record-size][ -r record-count][ -s size] file |
fifolog_reader | [ -t][ -b tstart][ -B Tstart][ -e tend][ -E Tend][ -o ofile][ -R regexp][ -T timefmt] file |
fifolog_writer | [ -w write-rate][ -s sync-rate][ -z compression] file |
解説
fifologs は、境界があり予測できるやり方で、時間と空間を賢く使う、永久的な記憶域へのテキストとバイナリ情報を記録するためにコンパクトなラウンドロビン輪状記憶域を提供します。ディスクパーティションで直接に、または、通常のファイルのいずれかに fifolog を格納することができます。
入力データストリームは、全体のログファイルを圧縮復元する必要なしで、格納されたデータで特定の時間インターバルを捜し出すことが可能となるように、記憶域に書き込まれる前に、エンコードされ、圧縮され、タイムスタンプでマークアップされます。
fifolog_create ユーティリティは、ディスクデバイスの最初のセクタを初期化するか、またはファイルシステムファイルを fifolog にするために使用され、一度だけ呼び出されるべきです。
既存の fifolog で fifolog_create を実行することは、 fifolog_reader と fifolog_writer が、前の内容を見ないように、それをリセットします。 (前の内容は、物理的に削除するのではなく、少しの手仕事で、最初の記録のほかはすべて、容易に復元できます。)
file がまだ存在していないなら、 fifolog_create は、ほかに、 -r, -l または -s オプションが指定されていないなら、 512 バイトの 86400 レコードをデフォルトとして、指定されたサイズでそれを作成して ftruncate(2) を試みます。
fifolog_writer ユーティリティは、標準入力を読み込んで、与えられたパラメータにしたがって、 fifolog の終りまで、それを書き込みます。
出力バッファが、圧縮されたデータで満たされるか、または 2 つのタイマのいずれかの期限が切れるときは、いつも、部分的に満たされたバッファを書き込むように強制して、書き込みが起こります。
最初の、より速いタイマ、 -w write-rate は、利用可能なデータを書き込むことを強制しますが、圧縮辞書をフラッシュしてリセットしません。このタイマは、クラッシュの場合に RAM で失われたログデータの量を最小にすることを目的としています、デフォルトで、以前の書き込みの 10 秒後に起動します。
2 番目の、より遅いタイマ、 -s sync-rate は、圧縮エンジンの完全なフラッシュとリセットを強制して、次のレコードの書き込みを、圧縮復元されたタイムスタンプで同期ポイントとして、そのレコードからログファイルを読み始めることを可能にします。デフォルトで、このタイマは、前の sync の 1 分後に起動します。
-z compression オプションは、 zlib(3) 圧縮レベルを制御します。正しい値は、デフォルトの 0 から 9 です。
fifolog_reader ユーティリティは、指定されたパラメータにしたがって fifolog からレコードを検索し、 -o で指定された標準出力またはファイルにそれらを書き込みます
fifolog_reader が報告する、データ量を制限する、開始と終わりの時間を指定することができます。小文字の変異型の -b と -e は、 time_t の値を取るのに対して、大文字の変異型の -B と -E は、“ 1 hour ago
” (1 時間前) のような、人間に読み込み可能な指定を取ります。
-t オプションによって、タイムスタンプを、 time_t の代わりに“ YYYYMMDDhhmmss
”として書式化を強制し、 -T によって、 strftime(3) 形式の文字列を指定できます。
最終的に、 -R で指定された ( REG_BASIC) 正規表現にマッチするレコードのみ出力されるように、レコードをフィルタリングすることができます。
実装に関する注
fifolog に格納されたデータは、3 つの層、検索が、実際の内容を圧縮復元とデコードする必要がないタイムスタンプに基づくポイントを同期できる外側の層、 zlib(3) で実装された圧縮の層、と内側のシリアライゼーション (serialization) とタイムスタンプ層から成ります。正確なエンコーディングは、 fifolog.h ファイルに説明されています。
fifolog は、通常のログファイルが newsyslog(8) などでローテイト (回転) されているファイルシステムより、より低い write-wear の結果となるところで、特に Flash ベースの媒体での使用によく適しています。
使用例
512 バイトの 1024*1024 レコードで fifolog を作成します:
fifolog_create -r 10m /tmp/fifolog
次は、このファイルに単一のレコードを書き込みます:
date | fifolog_writer /tmp/fifolog
次は、人間に読み込み可能なタイムスタンプでそれを読み戻します:
fifolog_reader -t /tmp/fifolog
fifolog_writer の 1 つの特に便利な使用例は、 syslogd(8) で syslog.conf(5) の次のような行を使用することです:
*.* |fifolog_writer /var/log/syslog_fifolog
歴史
fifolog ツールは、Danish Air Traffic Control システムのためにリモート無線ナビゲーション送信機をモニタして、制御する、“measured” (測定されている) と呼ばれるオープンソース SCADA アプリケーションから解放されました。作者
fifolog ツールは、 によって書かれました。February 9, 2008 | FreeBSD |