数時間実行されるバックグラウンドプロセスがあります。write
リアルタイムで通話量を追跡して計算したいです。
sudo strace -p27861 -s50 -e write
それは私に次の行を与えます:
write(1, "...........", 70) = 70
私が望むのは、次のリアルタイム通話数を取得することです。
write(1, "...........", 70) = 70, 1
write(1, "...........", 560) = 560, 2
write(1, "...........", 103) = 103, 3
またはそれを数えてください:
1
2
3
答え1
たとえば、GNU AWKを使用して出力を後処理します。
strace -q -p27861 -s50 -e write -e signal=none 2>&1 | gawk '{ print $0 ", " ++i }'
(これはあなたが望むリアルタイム出力を正確に提供します)または提案されているようcat -n
にユーザー 414777:
strace -q -p27861 -s50 -e write -e signal=none 2>&1 | cat -n
-q
「Attach」メッセージを抑制し、-e signal=none
信号追跡を抑制します。