dd コマンド出力をキャプチャする方法

dd コマンド出力をキャプチャする方法

特定のOracleエクスポートダンプファイルのファイルサイズを推定するテストスクリプトがあります。スクリプトの内容は次のとおりです。

 mknod exp.pipe p
 dd if=exp.pipe of=/dev/null bs=1024 &
 exp system/sys123@testorcl file=exp.pipe parfile=exptest1.par

出力は次の画面のようになり、追加の計算に必要なファイルまたは変数でキャプチャする必要があります。

. exporting dimensions
. exporting post-schema procedural objects and actions
. exporting statistics
Export terminated successfully without warnings.
12+0 records in.
12+0 records out.

変数またはファイルを介してレコード入力またはレコード出力で可能な値12と0を計算する必要があります。

答え1

私も同じように始めました。

mknod exp.pipe p
wc -c < exp.pipe > pipe.c 2>&1 &
dd if=/dev/zero of=exp.pipe count=5

5+0 records in
5+0 records out
2560 bytes (2,6 kB) copied, 0,001472 s, 1,7 MB/s

それから

cat pipe.c
2560

これはあなたが要求したものではありませんが、エクスポートのサイズを教えてくれます。

ユーティリティはありませんが、exp過去には(正しい構文解析によって)サイズに関するヒントを与えるプレビューオプションがありました。

答え2

標準エラーリダイレクト

dd if=exp.pipe of=/dev/null bs=1024 2> dd

関連情報