1

しきい値を通過している間だけ出力を出力する実行中の ping が好きです。
この値を渡す場合は、日付も出力に追加します。

これが私が試したことです:

ping 8.8.8.8 | awk '{split($7,a,"[=.]");if (a[2]>58) print a[2],d}' d="$(date)"
ping 8.8.8.8 | awk '{"date"| getline date;split($7,a,"[=.]");if (a[2]>58) print a[2],date}' 

これらの両方の問題は、date更新されていないことです。すべて同じ日付で印刷されます。

59 Fri Nov 15 08:55:04 CET 2013
59 Fri Nov 15 08:55:04 CET 2013
59 Fri Nov 15 08:55:04 CET 2013
60 Fri Nov 15 08:55:04 CET 2013
59 Fri Nov 15 08:55:04 CET 2013

これは bash スクリプトを使用して解決できることはわかっていますが、ライン ping 時間をテストするときは単純なコマンド ラインが必要です。

4

2 に答える 2

2

あなたが言う時:

ping 8.8.8.8 | awk '{split($7,a,"[=.]");if (a[2]>58) print a[2],d}' d="$(date)"

d出力のすべての行に同じタイムスタンプが追加されるため、変数は 1 回だけ評価されます。strftime代わりに、次の引数として使用できますprint

ping 8.8.8.8 | awk '{split($7,a,"[=.]");if (a[2]>58) print a[2], strftime()}'
于 2013-11-15T08:43:03.980 に答える