web-dev-qa-db-ja.com

mtrコマンドを人間が読める形式で標準出力に出力する方法は?

Sudo mtr 4.2.2.1を実行すると、ターミナルでループして実行されます。

以下と同じフォーマットを維持したい:

Host                                                   
1. 192.168.15.1                                        
2. ???
3. 10.254.254.x                                      
4. 10.254.254.x                                     
5. core1.lon2.he.net                           
6. 10gigabitethernet2-1.core1.lon2.he.net
7. a.resolvers.level3.net

ただし、標準出力に1回印刷されます。

マニュアルでは、XML、JSON、CSV、またはRAW形式で印刷するオプションしか表示されませんが、上記のように人間が読める形式では表示されません。基本的に、tracerouteコマンドを使用する場合は同様の形式に興味がありますが、mtr用です。出来ますか?

Sudo mtr -c1 4.2.2.1 | head -n20として実行しようとしましたが、ターミナルが壊れるので、使用するたびにresetする必要があります。それに対する回避策はありますか?

2
kenorb

mtrの出力を処理する場合、またはmtrが終了した後も表示したままにする場合は、レポートモード、またはより適切なワイドレポートモードで実行する必要があります。

mtr -r -c1 4.2.2.1

または

mtr -w -c1 4.2.2.1

(違いは、ワイドレポートモードでは、ホスト名が切り捨てられないことです)。

mtr -w -c1 4.2.2.1 | awk 'NR>1 {print $1, $2}'

あなたが求めているものに近い何かを与えるでしょう。

5
Stephen Kitt

これは、-r、レポートモードで実行できます。

Sudo mtr -c1 -r 4.2.2.1 | head -n20

またはファイルにリダイレクトされます...

Sudo mtr -c1 -r 4.2.2.1 | head -n20 > out

また、 iTerm2 は画面描画の問題の影響を受けていないようです。

1
Christopher