xtrace
出力を次のようにリダイレクトできることがわかりますsome_file
。
exec 2 >> some_file
set +x
...しかし、これは出力some_file
に送信されるだけでなく、元々送信された他のすべてにも送信されます。これには、ほとんどのエラーメッセージと警告が含まれ、すべて関連性がありません。xtrace
fd 2
xtrace
キャプチャする方法はありませんか?ただ出力はxtrace
どこにありますかsome_file
?
xtrace
出力自体と設定によって収集されたタイミング情報をできるだけ少なく歪める方法を探していることに加えてくださいPS4
。
zmodload zsh/datetime
export PS4='${(j::)epochtime} %N:%i> '
答え1
おそらくあなたが探しているソリューションではないでしょう。しかし、過去に同様の状況が発生したため、私が最初に選択したのは、トレースファイルをインポートして関心のあるデータのみを結果ファイルに出力するPythonパーサーを作成することでした。気にしない「ゴミテキスト」のパターンをxtrace出力で予測/区別できる限り、解析はかなり簡単に行えます。
はい - すべてのコミットキューのすべてのIOトレースを把握し、40 GB〜70 GBのファイルで結果を読み書きする20分テストを実行しますが、関心のあるデータを解析した後、結果ファイルのサイズは約1〜3 GBにすぎず、実際に分析され、可視化に使用できます。もちろん、このような大きなファイルサイズのため、サーバークラスのシステムはすべてを処理するのに約15〜30分かかりますが、同じプロセスを実行すると(別々のシナリオ、同じアイデア - 複数のログ、それぞれ〜24kb)、すべてを得ることができます。 2秒以内に、すべてのログのデータを単一の使用可能ファイルに保存します。
全体として、ワンストップストアを待つよりも、キャプチャ全体に数秒/分を追加できる後処理ステップを追加することが価値があるかもしれません。
頑張ってください!