rbatch 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +7 -0
- data/README.ja.md +70 -47
- data/README.md +261 -238
- data/bin/rbatch-init +27 -6
- data/doc/RBatch/CommonConfig.html +108 -12
- data/doc/RBatch/Config.html +108 -12
- data/doc/RBatch/Log.html +108 -65
- data/doc/RBatch/RunConf.html +78 -78
- data/doc/RBatch.html +274 -44
- data/doc/created.rid +9 -9
- data/doc/index.html +30 -8
- data/doc/lib/rbatch/cmd_rb.html +1 -1
- data/doc/lib/rbatch/common_config_rb.html +1 -1
- data/doc/lib/rbatch/config_rb.html +1 -1
- data/doc/lib/rbatch/double_run_checker_rb.html +1 -1
- data/doc/lib/rbatch/log_rb.html +1 -1
- data/doc/lib/rbatch/run_conf_rb.html +1 -1
- data/doc/lib/rbatch/version_rb.html +1 -1
- data/doc/lib/rbatch_rb.html +1 -1
- data/lib/rbatch/common_config.rb +36 -10
- data/lib/rbatch/config.rb +36 -10
- data/lib/rbatch/log.rb +12 -1
- data/lib/rbatch/run_conf.rb +4 -1
- data/lib/rbatch/version.rb +1 -1
- data/lib/rbatch.rb +68 -14
- data/sample/.rbatchrc +127 -0
- data/spec/cmd_spec.rb +2 -4
- data/spec/common_config_spec.rb +38 -7
- data/spec/config_spec.rb +36 -6
- data/spec/log_spec.rb +6 -6
- data/spec/rbatch_spec.rb +2 -4
- data/spec/run_conf_spec.rb +3 -2
- data/spec/spec_helper.rb +5 -0
- metadata +5 -3
- data/sample/conf/rbatch.yaml +0 -68
data/CHANGELOG
CHANGED
@@ -83,3 +83,10 @@ version 2
|
|
83
83
|
* add option. "conf_dir", "common_conf_name", and "cmd_timeout" are added.
|
84
84
|
* when cmd_timeout occured, RBatch kill child process now.
|
85
85
|
* change test code from Test::Unit to RSpec.
|
86
|
+
|
87
|
+
2.1.0 (2013/1/10)
|
88
|
+
----
|
89
|
+
* add error handling when key class mistake Symbol for String
|
90
|
+
* add auto library file reading
|
91
|
+
* add mix_rbatch_msg_to_log option
|
92
|
+
* change config reading timing. before ondemand, now initial.
|
data/README.ja.md
CHANGED
@@ -9,12 +9,13 @@ RBatchについて (version 2)
|
|
9
9
|
これはRubyで書かれたシンプルなバッチスクリプトのフレームワークです。
|
10
10
|
バッチスクリプト(バックアップやプロセスリロード等)を書く際に便利な機能をフレームワークとして提供しています。
|
11
11
|
|
12
|
-
主な機能は以下のとおり。
|
12
|
+
主な機能は以下のとおり。
|
13
13
|
|
14
14
|
* 自動ログ出力
|
15
|
+
* 自動ライブラリ読み込み
|
15
16
|
* 自動メール送信
|
16
17
|
* 自動設定ファイル読み込み
|
17
|
-
* 外部コマンド実行
|
18
|
+
* 外部コマンド実行
|
18
19
|
* 二重起動チェック
|
19
20
|
|
20
21
|
注意:このフレームワークはRuby 1.9で動作します。
|
@@ -34,41 +35,43 @@ RBatchについて (version 2)
|
|
34
35
|
|
35
36
|
### RBatchホームディレクトリ
|
36
37
|
|
37
|
-
|
38
|
+
環境変数`${RB_HOME}`を定義する事で、その場所をRBatchのホームディレクトリに固定することができます。
|
38
39
|
|
39
|
-
|
40
|
+
環境変数`${RB_HOME}`を定義していない場合は、「実行するスクリプトが配置されているディレクトリの親ディレクトリ」が${RB_HOME}になります。言い換えると`${RB_HOME}`のデフォルト値は`(スクリプトのパス)/../`です。
|
40
41
|
|
41
42
|
### ディレクトリ構成と命名規則
|
42
43
|
|
43
44
|
RBatchでは、実行スクリプト、設定ファイルおよびログファイルについて、
|
44
45
|
配置場所および命名規則が規約で決まっています。
|
45
46
|
|
46
|
-
|
47
|
+
具体的には、`${RB_HOME}/bin/hoge.rb`というスクリプトでは、`${RB_HOME}/lib/*.rb`にあるライブラリをロードし、`${RB_HOME}/conf/hoge.yaml`という設定ファイルを読み、`${RB_HOME}/log/YYYYMMDD_HHMMSS_hoge.rb`というログを出力するという規則です。
|
47
48
|
|
48
49
|
例を示すと以下の通りです。
|
49
50
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
51
|
+
${RB_HOME} ←RBatchホームディレクトリ
|
52
|
+
|
|
53
|
+
|-.rbatchrc ←Run-Conf
|
54
|
+
|
|
55
|
+
|-bin ←実行スクリプト配置場所
|
56
|
+
| |- A.rb
|
57
|
+
| |- B.rb
|
58
|
+
|
|
59
|
+
|-conf ←設定ファイル配置場所
|
60
|
+
| |- A.yaml
|
61
|
+
| |- B.yaml
|
62
|
+
|
|
63
|
+
|-log ←ログ出力場所
|
64
|
+
| |- YYYYMMDD_HHMMSS_A.log
|
65
|
+
| |- YYYYMMDD_HHMMSS_B.log
|
66
|
+
|
|
67
|
+
|-lib ←ライブラリ配置場所
|
68
|
+
|- lib_X.rb
|
69
|
+
|- lib_Y.rb
|
67
70
|
|
68
71
|
### 自動ログ出力
|
69
72
|
|
70
73
|
Logging blockを使うことで、自動的にログファイルに出力することができます。
|
71
|
-
|
74
|
+
ログファイルはデフォルトで`${RB_HOME}/log/YYYYMMDD_HHMMSS_(スクリプトのbasename).log`に出力されます。
|
72
75
|
例外が発生した場合でも、ログにスタックトレースを出力することができます。
|
73
76
|
|
74
77
|
サンプル
|
@@ -97,14 +100,18 @@ RBatch::Log.new(){ |log| # Logging block
|
|
97
100
|
[backtrace] test.rb:3:in `<main>'
|
98
101
|
```
|
99
102
|
|
103
|
+
### 自動ライブラリ読み込み
|
104
|
+
|
105
|
+
`${RB_HOME}/lib/*.rb`にライブラリファイルを配置すると、スクリプトが起動する前に自動的に読み込まれます。
|
106
|
+
|
100
107
|
### 自動メール送信
|
101
108
|
|
102
|
-
|
109
|
+
`log_send_mail`オプションを使う事により、スクリプトでエラーが発生した場合に、自動でメールを送信することができます。
|
103
110
|
|
104
111
|
### 自動設定ファイル読み込み
|
105
112
|
|
106
113
|
RBatchは簡単にデフォルトの位置の設定ファイルを読み込めます。
|
107
|
-
|
114
|
+
デフォルトの位置は`${RB_HOME}/conf/(プログラムbasename).yaml`です。
|
108
115
|
|
109
116
|
サンプル
|
110
117
|
|
@@ -130,7 +137,7 @@ p RBatch::config["not_exist"]
|
|
130
137
|
=> Raise Exception
|
131
138
|
```
|
132
139
|
|
133
|
-
|
140
|
+
すべてのスクリプトから共通で読み込む設定ファイルを作りたい場合は、`${RB_HOME}/conf/common.yaml`というファイルを作ることで可能です。
|
134
141
|
|
135
142
|
### 外部コマンド実行
|
136
143
|
|
@@ -150,29 +157,25 @@ p r.status
|
|
150
157
|
=> 0
|
151
158
|
```
|
152
159
|
|
160
|
+
外部コマンドにタイムアウトを設定したい場合は`cmd_timeout`をオプションを利用できます。
|
161
|
+
|
153
162
|
### 二重起動チェック
|
154
163
|
|
155
|
-
|
164
|
+
`forbid_double_run`のオプションを利用すれば、RBatchを利用したプログラムの二重起動チェックができます。
|
156
165
|
|
157
166
|
カスタマイズ
|
158
167
|
--------------
|
159
168
|
|
160
169
|
RBatchではオプションの指定の仕方は以下の二つがあります。
|
161
170
|
|
162
|
-
(1) Run-Conf(
|
163
|
-
(2) スクリプト内でオプションオブジェクトをコンストラクタの引数に渡す
|
171
|
+
* (1) Run-Conf(`${RB_HOME}/.rbatchrc`)に書く
|
172
|
+
* (2) スクリプト内でオプションオブジェクトをコンストラクタの引数に渡す
|
164
173
|
|
165
174
|
同じオプションを(1)と(2)の両方で指定すると、(2)が優先されます。
|
166
175
|
|
167
176
|
### Run-Conf(.rbatchrc)によるカスタマイズ
|
168
177
|
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
${RB_HOME}/.rbatchrc
|
173
|
-
|
174
|
-
|
175
|
-
設定ファイルのサンプルは以下の通り
|
178
|
+
Run-Conf(`${RB_HOME}/.rbatchrc`)のサンプルは以下の通り
|
176
179
|
|
177
180
|
```
|
178
181
|
# RBatch Run-Conf (.rbatchrc)
|
@@ -184,10 +187,9 @@ RBatchではオプションの指定の仕方は以下の二つがあります
|
|
184
187
|
# 全体
|
185
188
|
# -------------------
|
186
189
|
|
187
|
-
#
|
190
|
+
# 設定ファイルディレクトリ
|
188
191
|
#
|
189
192
|
# デフォルトは "<home>/conf"
|
190
|
-
#
|
191
193
|
# <home> は ${RB_HOME} に置き換わります
|
192
194
|
#
|
193
195
|
#conf_dir: <home>/config
|
@@ -199,10 +201,25 @@ RBatchではオプションの指定の仕方は以下の二つがあります
|
|
199
201
|
#
|
200
202
|
#common_conf_name: share.yaml
|
201
203
|
|
204
|
+
# ライブラリディレクトリ
|
205
|
+
#
|
206
|
+
# デフォルトは"<home>/lib"
|
207
|
+
# <home> は${RB_HOME}に置き換わります
|
208
|
+
#
|
209
|
+
#lib_dir: /usr/local/lib/rbatch/
|
210
|
+
|
211
|
+
# 自動ライブラリ読み込み
|
212
|
+
#
|
213
|
+
# デフォルトはtrue
|
214
|
+
# trueの場合、スクリプトが始まる前に"(ライブラリディレクトリ)/*.rb"をrequireします
|
215
|
+
#
|
216
|
+
#auto_lib_load: true
|
217
|
+
#auto_lib_load: false
|
218
|
+
|
202
219
|
# スクリプトの二重起動を可能にするかどうか
|
203
220
|
#
|
204
221
|
# デフォルト値はfalse。
|
205
|
-
# true
|
222
|
+
# trueにすると、同じ名前のスクリプトは二つ同時に起動できなくなります。
|
206
223
|
#
|
207
224
|
#forbid_double_run: true
|
208
225
|
#forbid_double_run: false
|
@@ -232,7 +249,6 @@ RBatchではオプションの指定の仕方は以下の二つがあります
|
|
232
249
|
# ログディレクトリ
|
233
250
|
#
|
234
251
|
# デフォルトは "<home>/log"
|
235
|
-
#
|
236
252
|
# <home> は ${RB_HOME} に置き換わります
|
237
253
|
#
|
238
254
|
#log_dir: <home>/rb_log
|
@@ -241,7 +257,6 @@ RBatchではオプションの指定の仕方は以下の二つがあります
|
|
241
257
|
# ログファイル名
|
242
258
|
#
|
243
259
|
# デフォルト値は"<date>_<time>_<prog>.log"。
|
244
|
-
# 以下の文字列は予約語
|
245
260
|
# <data> はYYYYMMDDの日付形式に置換されます
|
246
261
|
# <time> はhhmmssの時刻形式に置換されます
|
247
262
|
# <prog> は拡張子を除いたファイル名に置換されます
|
@@ -282,8 +297,6 @@ RBatchではオプションの指定の仕方は以下の二つがあります
|
|
282
297
|
# 削除対象のログは、そのRBatch::Logのインスタンスが出力するログファイルと
|
283
298
|
# 同じファイル名フォーマットであり、かつログファイル名のフォーマットに<date>が
|
284
299
|
# 含まれるもの。
|
285
|
-
# 例えば、RBatch::Logで出力するログファイルが「20120105_hoge.log」だった場合、
|
286
|
-
# 削除対象のログは「YYYYMMDD_hoge.log」のログとなる。
|
287
300
|
#
|
288
301
|
#log_delete_old_log: true
|
289
302
|
#log_delete_old_log: false
|
@@ -308,13 +321,23 @@ RBatchではオプションの指定の仕方は以下の二つがあります
|
|
308
321
|
#log_mail_server_host : "localhost"
|
309
322
|
#log_mail_server_port : 25
|
310
323
|
|
324
|
+
# RBatchメッセージをログに出力
|
325
|
+
#
|
326
|
+
# デフォルトは true。
|
327
|
+
# trueを指定すると、RBatchメッセージをその時開かれているログに書き込む。
|
328
|
+
# RBatchメッセージの例
|
329
|
+
# [RBatch] Load Config : "../conf/hoge.yaml"
|
330
|
+
#
|
331
|
+
#mix_rbatch_msg_to_log : true
|
332
|
+
#mix_rbatch_msg_to_log : false
|
333
|
+
|
311
334
|
```
|
312
335
|
|
313
336
|
### コンストラクタの引数によるオプション指定
|
314
337
|
|
315
|
-
|
338
|
+
スクリプト内で一時的にオプションを指定したい場合は、RBatch::LogクラスもしくはRBatch::Cmdクラスのコンストラクタの引数にオプションのハッシュを指定します。
|
316
339
|
|
317
|
-
#### RBatch::Log
|
340
|
+
#### RBatch::Logクラスのオプション
|
318
341
|
|
319
342
|
opt = {
|
320
343
|
:name => "<date>_<time>_<prog>.log",
|
@@ -333,7 +356,7 @@ RBatchではオプションの指定の仕方は以下の二つがあります
|
|
333
356
|
|
334
357
|
RBatch::Log.new(opt)
|
335
358
|
|
336
|
-
#### RBatch::Cmd
|
359
|
+
#### RBatch::Cmdクラスのオプション
|
337
360
|
|
338
361
|
opt = {
|
339
362
|
:raise => false,
|
@@ -345,4 +368,4 @@ RBatchではオプションの指定の仕方は以下の二つがあります
|
|
345
368
|
version 1 から 2 へのマイグレーション
|
346
369
|
--------------
|
347
370
|
|
348
|
-
|
371
|
+
`${RB_HOME}/conf/rbatch.yaml` を `${RB_HOME}/.rbatchrc` に移動してください。
|