私は現在監視ツールの出力をファイルにリダイレクトしていますが、私が望むのは、そのツールを停止せずに私の要求に応じて(キーバインディングを使用)、この出力を新しいファイルにリダイレクトすることです。
それはまるで
monitor_program | handle_stdout
Whereをhandle_stdout
使用すると、特定の場所にログを配置する新しいファイルを定義できます。
簡単に書くことができることを知っていますが、すでにこれを可能にするツールがあるかどうか疑問に思います。
ベストアンサー1
私は名前付きパイプを提案したいと思います。
パイプを作成します
mkfifo p
(「p」がない場合は、必要に応じて名前を付けることができます)。パイプから読み込み、必要な場所に書き込む「リーダー」スクリプトを作成します。
名前付きパイプにログを書き込むようにモニタープログラムに指示します。
以下は、名前付きパイプ「p」からデータを読み取り、そのデータをインデックス「mylog」ファイルに書き込むサンプルリーダースクリプトです。
#!/bin/sh
INDEX=0
switchlog() {
read INDEX < newindex
echo now writing to "mylog.$INDEX"
}
trap switchlog USR1
while :
do
cat p >> mylog."$INDEX"
done