任意のRubyスクリプトを実行するとき開始/終了時のタイムスタンプを出力する方法

やりたいこと

cronとかで、自動的にスクリプトを実行したときに、その実行開始/終了のタイミングで開始時刻/終了時刻を標準出力に出力したい。

そこで

汎用的に使えるちょっとしたスクリプトを組んでみた

以下のスクリプトを、timestamp.rb という名前で作成して、ロード可能な場所に配置しておきます。

puts "-" * 60
puts "#{Time.now} #{$0} was started"
puts "-" * 60

END {
  puts "-" * 60
  puts "#{Time.now} #{$0} was finished "
  puts "-" * 60
}

これで、ruby コマンドで任意のスクリプトを実行する際、-r timestampとしてrequireしてあげることで、開始・終了時のタイムスタンプが標準出力に出力されるようになります。

こんな感じで使えます

たとえば、なんらかの処理を行い標準出力にその実行ログを出力するような既存のスクリプト(test.rb)があるとします。

puts "ごにょごにょ"

これを、ふつうに実行するとこんな感じになります。

$ ruby test.rb
ごにょごにょ

これを

$ ruby -r timestamp test.rb

すると、、、

------------------------------------------------------------
Wed Dec 23 01:07:10 +0900 2009 test.rb was started
------------------------------------------------------------
ごにょごにょ
------------------------------------------------------------
Wed Dec 23 01:07:10 +0900 2009 test.rb was finished
------------------------------------------------------------

という感じになります。