シェルの実行日時をグレイヴ・アクセントとdateコマンドで記録する方法
cronや手動でシェルを実行した際に、そのシェルが何時何分何秒に始まり、何時何分何秒に終了したかを知りたい時がある。そのような場合、シェルの前後でdateコマンドを実行すればよいが、dateコマンドだけだと、少し物足りないと思うかもしれない。
《例》
date
/var/www/sh/nobuneko_shell_test.sh
date
※手動で実行する場合は、以下のようにセミコロン(;)でコマンドを区切ると、左から順番にコマンドを実行してくれるので、上記の例のようにdateコマンドを手動で実行し、タイムラグが極力出ないように急いでシェルコマンドを実行する(でも、必ずタイムラグは出る)といった苦労をしなくてもよい。
date;/var/www/sh/nobuneko_shell_test.sh;date
《実行結果》
2011年 9月 29日 木曜日 07:56:57 JST
2011年 9月 29日 木曜日 07:57:22 JST
手動で実行した場合は、上記のように年月日、曜日、時分秒のみの表記でも十分分かるのだが、cronでログを残す場合は、何の実行結果なのかが分からなくなるので、dateコマンドの実行結果の次に例えばシェルファイル名などを表示するようにすると分かりやすくなる。
《例》
date
echo "nobuneko_shell_test.sh start"
/var/www/sh/nobuneko_shell_test.sh
date
echo "nobuneko_shell_test.sh end"
《実行結果》
2011年 9月 29日 木曜日 07:56:57 JST
nobuneko_shell_test.sh start
2011年 9月 29日 木曜日 07:57:22 JST
nobuneko_shell_test.sh end
単純にdateコマンドを書く場合は、echoで出力したシェルのファイル名は、上記のようにdateコマンドの実行結果の右隣ではなく、改行されて下に表示される。これでもいいかもしれないが、dateコマンドの実行結果の右隣にシェルファイル名を表示させたい場合は、echoの中でdateコマンドをグレイヴ・アクセント(`)で囲んでを記述し、その右隣にシェルファイル名を書くとよい。
※グレイヴ・アクセント(`)は、キーボードのShiftキーを押しながら、@(アットマーク)のキーを押すと入力できる記号。
《例》
echo `date` "nobuneko_shell_test.sh start"
/var/www/sh/nobuneko_shell_test.sh
echo `date` "nobuneko_shell_test.sh end"
《実行結果》
2011年 9月 29日 木曜日 07:56:57 JST nobuneko_shell_test.sh start
2011年 9月 29日 木曜日 07:57:22 JST nobuneko_shell_test.sh end