web-dev-qa-db-ja.com

「トップ」コマンド出力にタイムスタンプを追加

「トップ」からいくつかのパフォーマンスメトリックを抽出し、それらをファイルに保存しています

top -b | grep 'tesseract\|node\|Java\|beam.smp\|dockerd' > testm.txt

したがって、毎秒、次の出力が得られます。

   535 rabbitmq  20   0 1246756 128432   5536 S   1.3  3.4 618:33.41 beam.smp
   589 root      20   0  351040  47836  25740 S   0.0  1.3  12:38.72 dockerd
  1980 root      20   0 2236796  36844  15980 S   0.0  1.0   6:11.59 Java
  1995 root      20   0 1766008 241428  21844 S   0.0  6.4  11:26.85 Java
 29965 root      20   0 1107460  63732  19328 S   0.0  1.7   0:01.69 node

このスクリプトを長期間実行すると、ランダムなデータチャンクがいつ収集されたかを確認できなくなるため、この出力のすべてのチャンクにタイムスタンプを追加する方法に興味があります。

前もって感謝します!

2
i474232898

awkには時間がありますので、top -bの個々の実行のトップ出力の各行にタイムスタンプを追加することは、フィルタリングにgrepの代わりにawkを使用して簡単に行うことができます。組み込み関数 であり、それらを出力に挿入できます。

これらのプログラムのほとんどを実行していないので、例のフィルターにbashsshを追加しました...

単純なエポックタイムスタンプ(1970年1月1日からの秒数)でそれを行うことができます。

top -b | awk '/bash|ssh|tesseract|node|Java|beam.smp|dockerd/ {print systime(), $0}'

どちらが小さくて保存でき、見た目もきれいです。

bash-$ top -b | awk '/bash|ssh|tesseract|node|Java|beam.smp|dockerd/ {print systime(), $0}'
1490018813  1229 root      20   0  891536  42868  28348 S   0.0  0.3  15:07.30 dockerd
1490018813  1240 root      20   0   65520   6208   5488 S   0.0  0.0   0:00.01 sshd
1490018813  2666 tim       20   0   24336   7136   3492 S   0.0  0.0   0:00.05 bash
1490018813  2710 tim       20   0   46984   5324   4644 S   0.0  0.0   0:09.08 ssh
1490018813  2783 root      20   0  105988   7184   6184 S   0.0  0.0   0:00.00 sshd
1490018813  2804 root      20   0  105988   7404   6408 S   0.0  0.0   0:00.00 sshd

または、より人間が読めるタイムスタンプを使用します。

top -b | awk '/bash|ssh|tesseract|node|Java|beam.smp|dockerd/ {print strftime("%Y-%m-%d-%H:%M:%S", systime(), $0}'

どちらがより速く理解できますか:

bash-[541]$ top -b -n 3 | awk '/ssh|bash|Java|dockerd/ {print strftime("%Y-%m-%d-%H:%M:%S", systime()), $0}'
2017-03-20-10:04:23  1229 root      20   0  891536  42868  28348 S   0.0  0.3  15:07.24 dockerd
2017-03-20-10:04:23  1240 root      20   0   65520   6208   5488 S   0.0  0.0   0:00.01 sshd
2017-03-20-10:04:23  2666 tim       20   0   24336   7136   3492 S   0.0  0.0   0:00.05 bash
2017-03-20-10:04:23  2710 tim       20   0   46984   5324   4644 S   0.0  0.0   0:09.08 ssh
2017-03-20-10:04:23  2783 root      20   0  105988   7184   6184 S   0.0  0.0   0:00.00 sshd
2017-03-20-10:04:23  2804 root      20   0  105988   7404   6408 S   0.0  0.0   0:00.00 sshd
2017-03-20-10:04:23  2909 tim       20   0  105988   5072   4072 S   0.0  0.0   0:00.20 sshd
2017-03-20-10:04:23  2931 tim       20   0  105988   4252   3224 S   0.0  0.0   0:00.00 sshd
7
Tim Kennedy