Help us understand the problem. What is going on with this article?

[Linux] コマンドの実行結果にタイムスタンプを付与

More than 1 year has passed since last update.

トラブルシューティングの目的で、Linux OSの状態確認のために、調査用のコマンドを継続して実行することがあります。
実行結果にタイムスタンプが付与される(あるいはオプションで付与できる)場合は、どの時点の結果であるかを判別できますが、タイムスタンプが付与されない場合は、判別が困難であるため、調査に影響を及ぼします。
そこで、強制的にタイムスタンプを付与する方法を紹介します。

タイムスタンプを付与する

# コマンド名 | awk '{print strftime("書式"), $0}'

awkのstrftime()関数でタイムスタンプを付与します。タイムスタンプの書式は自由に指定できます。

vmstatの例

# vmstat 1 | awk '{print strftime("%Y/%m/%d %H:%M:%S"), $0}'
2017/03/06 09:42:12 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
2017/03/06 09:42:12  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
2017/03/06 09:42:12  1  0      0 434896 158268 7166376    0    0     0     2    0    0  0  0 100  0  0
2017/03/06 09:42:13  0  0      0 434864 158268 7166376    0    0     0     0   49   43  0  0 100  0  0
2017/03/06 09:42:14  0  0      0 434584 158268 7166376    0    0     0     0   78   64  0  0 100  0  0

pingの例

# ping localhost | awk '{print strftime("%Y/%m/%d %H:%M:%S"), $0}'
2017/03/06 09:42:48 PING localhost (127.0.0.1) 56(84) bytes of data.
2017/03/06 09:42:48 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.036 ms
2017/03/06 09:42:49 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.057 ms
2017/03/06 09:42:50 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.028 ms

ファイルに出力する

# コマンド名 | awk '{print strftime("書式"), $0} {fflush()}' >> ファイル名

ファイルに出力する場合は、awkのfflush()関数で出力をバッファリングしないようにします。

バックグラウンドで実行する

# nohup コマンド名 | awk '{print strftime("書式"), $0} {fflush()}' >> ファイル名 2>&1 &

バックグラウンドで実行する場合は、nohupを使用して、ログアウトしてもコマンドが終了しないようにします。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away