nohupでバックグラウンドジョブ化したコマンドの終了時間を標準出力でファイルに書き出す
Pocket

コマンドの実行時間を計測する際によく使用されるtimeコマンドだが、これはbashの組み込みコマンドのため、外部ファイルへの書き出しができない。

20150725_000000

 

こうなると、nohupなどでコマンドの実行時間をログに記録させて放置したくても、ファイルに書き出せないため放置することが難しくなる。
そんな時は、bashの組み込みコマンドとしてのtimeではなく、GNU timeを利用するといいだろう。

GNU timeは、それぞれのディストリビューションのパッケージ管理ソフトからインストールする。

●Debian/Ubuntuの場合

apt-get install time

 

●RHEL系の場合

yum install time
Sponsored Links

後は、以下のようにコマンドを実行する事でコマンドの実行時間を計測、その内容をログに書き出す事ができる。

/usr/bin/time -ao 計測時間を出力するファイル 実行するコマンド

20150725_000002

[root@test-centos7 ~]# time cp -fv aaa bbb1 > time

real    0m0.005s
user    0m0.002s
sys     0m0.003s
[root@test-centos7 ~]# cat time
`aaa' -> `bbb1'
[root@test-centos7 ~]# /usr/bin/time -ao time cp -fv aaa bbb2 > time
[root@test-centos7 ~]# cat time
`aaa' -> `bbb2'
0.00user 0.00system 0:00.00elapsed 66%CPU (0avgtext+0avgdata 1172maxresident)k
0inputs+8outputs (0major+351minor)pagefaults 0swaps

 

「elapsed」という箇所が実行に要した時間となる。

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。