コマンドの実行時間を計測する際によく使用されるtimeコマンドだが、これはbashの組み込みコマンドのため、外部ファイルへの書き出しができない。
こうなると、nohupなどでコマンドの実行時間をログに記録させて放置したくても、ファイルに書き出せないため放置することが難しくなる。
そんな時は、bashの組み込みコマンドとしてのtimeではなく、GNU timeを利用するといいだろう。
GNU timeは、それぞれのディストリビューションのパッケージ管理ソフトからインストールする。
Debian/Ubuntuの場合
apt-get install time
RHEL系の場合
yum install time
後は、以下のようにコマンドを実行する事でコマンドの実行時間を計測、その内容をログに書き出す事ができる。
/usr/bin/time -ao 計測時間を出力するファイル 実行するコマンド
[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」という箇所が実行に要した時間となる。