rbatch 2.1.7 → 2.1.8
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +13 -0
- data/README.ja.md +17 -6
- data/README.md +40 -31
- data/lib/rbatch/log.rb +1 -1
- data/lib/rbatch/version.rb +1 -1
- data/rbatch.gemspec +2 -2
- metadata +5 -4
data/.travis.yml
ADDED
data/README.ja.md
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
[English](https://github.com/fetaro/rbatch/blob/master/README.md "english") | [Japanese ](https://github.com/fetaro/rbatch/blob/master/README.ja.md "japanese") | [Document (YardDoc)](http://fetaro.github.io/rbatch/index.html)
|
2
2
|
|
3
|
-
RBatch:
|
3
|
+
RBatch: バッチスクリプト フレームワーク
|
4
4
|
=============
|
5
5
|
|
6
|
-
RBatchについて
|
6
|
+
RBatchについて
|
7
7
|
--------------
|
8
8
|
|
9
|
-
RBatchはRuby
|
9
|
+
RBatchはRubyで書かれたシンプルなバッチスクリプト(運用スクリプト)のフレームワークです。
|
10
10
|
バッチスクリプト(バックアップやプロセスリロード等)を書く際に便利な機能をフレームワークとして提供しています。
|
11
11
|
|
12
12
|
主な機能は以下のとおり。
|
@@ -41,10 +41,21 @@ RBatchはRubyで書かれたシンプルなバッチスクリプトのフレー
|
|
41
41
|
|
42
42
|
### ディレクトリ構成と命名規則
|
43
43
|
|
44
|
+
"設定より規約"の原則に基づいて、
|
44
45
|
RBatchでは、実行スクリプト、設定ファイルおよびログファイルについて、
|
45
|
-
|
46
|
+
配置場所および命名規則が規約で決めています。
|
47
|
+
ルールに従えば、ほとんど設定せずに、スクリプト開発に十分な環境が整います。
|
46
48
|
|
47
|
-
|
49
|
+
ルールは以下の通り
|
50
|
+
|
51
|
+
* 仮に`${RB_HOME}/bin/hoge.rb`というスクリプトを作った場合
|
52
|
+
* 個別設定ファイルは`${RB_HOME}/conf/hoge.yaml`としてください。
|
53
|
+
* 共通設定ファイルは`${RB_HOME}/conf/common.yaml`としてください。
|
54
|
+
* ライブラリは`${RB_HOME}/lib/*.rb`としてください。
|
55
|
+
|
56
|
+
すると
|
57
|
+
|
58
|
+
* `${RB_HOME}/log/YYYYMMDD_HHMMSS_hoge.rb`にログが出ます。
|
48
59
|
|
49
60
|
例を示すと以下の通りです。
|
50
61
|
|
@@ -57,7 +68,7 @@ RBatchでは、実行スクリプト、設定ファイルおよびログファ
|
|
57
68
|
| |- B.rb
|
58
69
|
|
|
59
70
|
|-conf ←設定ファイル配置場所
|
60
|
-
| |- A.yaml
|
71
|
+
| |- A.yaml ←個別設定ファイル
|
61
72
|
| |- B.yaml
|
62
73
|
| |- common.yaml ←共通設定ファイル
|
63
74
|
|
|
data/README.md
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
[English](https://github.com/fetaro/rbatch/blob/master/README.md "english") | [Japanese ](https://github.com/fetaro/rbatch/blob/master/README.ja.md "japanese") | [Document (YardDoc)](http://fetaro.github.io/rbatch/index.html)
|
2
2
|
|
3
|
-
RBatch:
|
3
|
+
RBatch: Batch Script Framework
|
4
4
|
=============
|
5
5
|
|
6
|
-
About RBatch
|
6
|
+
About RBatch
|
7
7
|
--------------
|
8
8
|
|
9
|
-
|
10
|
-
RBatch is a framework for Ruby-based batch script. RBatch help to make a batch script such as "data backup" or "proccess start ".
|
9
|
+
RBatch is a ruby-based framework for batch scripts. RBatch help to make a batch script such as "data backup" or "proccess start ".
|
11
10
|
|
12
11
|
There are following functions.
|
13
12
|
|
@@ -18,7 +17,6 @@ There are following functions.
|
|
18
17
|
* External Command Wrapper
|
19
18
|
* Double Run Check
|
20
19
|
|
21
|
-
|
22
20
|
Note: RBatch works on Ruby 1.9.
|
23
21
|
|
24
22
|
Note: This software is released under the MIT License, see LICENSE.txt.
|
@@ -36,15 +34,26 @@ Overview
|
|
36
34
|
|
37
35
|
### RBatch home directory
|
38
36
|
|
39
|
-
When you set `${RB_HOME}` environment variable, RBatch home directory is
|
37
|
+
When you set `${RB_HOME}` environment variable, RBatch home directory is fixed at `${RB_HOME}`.
|
40
38
|
|
41
|
-
When you do NOT set `${RB_HOME}`, `${RB_HOME}` is the parent directory of the directory
|
39
|
+
When you do NOT set `${RB_HOME}`, `${RB_HOME}` is the parent directory of the directory where the script is located. In other words, default of `${RB_HOME}` is `(script path)/../` .
|
42
40
|
|
43
41
|
### Directory Structure and File Naming Convention
|
44
42
|
|
45
|
-
|
43
|
+
Follow the rule of "convention over configuration",
|
44
|
+
RBach has convention of file naming and directory structure in advance.
|
45
|
+
If you follow these rules, you will gain plenty development environment without any configurations.
|
46
|
+
|
47
|
+
The rules are
|
48
|
+
|
49
|
+
* If you make `${RB_HOME}/bin/hoge.rb` as the script...
|
50
|
+
* individual config file should be `${RB_HOME}/conf/hoge.yaml`
|
51
|
+
* common(shared) config file should be `${RB_HOME}/conf/common.yaml`
|
52
|
+
* libraries should be `${RB_HOME}/lib/*.rb`
|
53
|
+
|
54
|
+
then
|
46
55
|
|
47
|
-
|
56
|
+
* log files are output at `${RB_HOME}/log/YYYYMMDD_HHMMSS_hoge.log`
|
48
57
|
|
49
58
|
For example
|
50
59
|
|
@@ -57,9 +66,9 @@ For example
|
|
57
66
|
| |- B.rb
|
58
67
|
|
|
59
68
|
|- conf <--- Config files
|
60
|
-
| |- A.yaml
|
69
|
+
| |- A.yaml <--- Individual config file
|
61
70
|
| |- B.yaml
|
62
|
-
| |- common.yaml <--- Common
|
71
|
+
| |- common.yaml <--- Common config file
|
63
72
|
|
|
64
73
|
|- log <--- Log files
|
65
74
|
| |- YYYYMMDD_HHMMSS_A.log
|
@@ -71,9 +80,9 @@ For example
|
|
71
80
|
|
72
81
|
### Auto Logging
|
73
82
|
|
74
|
-
Use auto logging block
|
75
|
-
The default location of log
|
76
|
-
If an exception is raised,
|
83
|
+
Use the auto logging block ,`RBatch::Log`, RBatch automatically output logfiles.
|
84
|
+
The default location of log files are `${RB_HOME}/log/YYYYMMDD_HHMMSS_(script base).log`.
|
85
|
+
If an exception is raised in auto logging block, RBatch rescue and write the stack trace to the logfile.
|
77
86
|
|
78
87
|
sample
|
79
88
|
|
@@ -102,19 +111,19 @@ Run script. Log file is `${RB_HOME}/log/20121020_005953_sample1.log`
|
|
102
111
|
|
103
112
|
### Auto Library Loading
|
104
113
|
|
105
|
-
If you make libraries at `${RB_HOME}/lib/*.rb`,
|
114
|
+
If you make the libraries at `${RB_HOME}/lib/*.rb`, these are loaded(required) before script run.
|
106
115
|
|
107
116
|
### Auto Mail Sending
|
108
117
|
|
109
|
-
By using `log_send_mail` option, when
|
118
|
+
By using `log_send_mail` option, when the logs with ERROR or FATAL level are output, RBatch sends the error messages by e-mail.
|
110
119
|
|
111
120
|
### Auto Config Reading
|
112
121
|
|
113
|
-
If you make configuration file
|
122
|
+
If you make the configuration file ,`${RB_HOME}/conf/"(script base).yaml"`, this file is read and parsed automatically.
|
114
123
|
|
115
124
|
sample
|
116
125
|
|
117
|
-
make config file `${RB_HOME}/conf/sample2.yaml`.
|
126
|
+
make the config file `${RB_HOME}/conf/sample2.yaml`.
|
118
127
|
|
119
128
|
key: value
|
120
129
|
array:
|
@@ -122,7 +131,7 @@ make config file `${RB_HOME}/conf/sample2.yaml`.
|
|
122
131
|
- item2
|
123
132
|
- item3
|
124
133
|
|
125
|
-
In script `${RB_HOME}/bin/sample2.rb
|
134
|
+
In script named `${RB_HOME}/bin/sample2.rb`, this config values can be used.
|
126
135
|
|
127
136
|
```ruby
|
128
137
|
require 'rbatch'
|
@@ -137,14 +146,14 @@ p RBatch.config["not_exist"] # => Raise RBatch::ConfigException
|
|
137
146
|
|
138
147
|
#### Common Config
|
139
148
|
|
140
|
-
If you can use
|
141
|
-
|
149
|
+
If you can use the common config file , `${RB_HOME}/conf/common.yaml`, this config values can be used by all scripts.
|
150
|
+
The name of common config file is changed by option `common_conf_name`.
|
142
151
|
|
143
152
|
### External Command Wrapper
|
144
153
|
|
145
|
-
RBatch
|
154
|
+
`RBatch.cmd` is external command wapper.
|
146
155
|
|
147
|
-
This function return a result object which
|
156
|
+
This function return a result object which contains command's "STDOUT", "STDERR" and "exit status".
|
148
157
|
|
149
158
|
sample
|
150
159
|
|
@@ -159,12 +168,12 @@ p r.status # => 0
|
|
159
168
|
|
160
169
|
If you want to set a timeout of external command, you can use `cmd_timeout` option.
|
161
170
|
|
162
|
-
|
163
|
-
|
171
|
+
By using `cmd_raise` option, if exit status of command is not 0, RBatch raise an Exception.
|
172
|
+
This function help to handle the errors of external command.
|
164
173
|
|
165
174
|
### Double Run Check
|
166
175
|
|
167
|
-
|
176
|
+
By using `forbid_double_run` option, two scripts both has same name cannot run at the same time.
|
168
177
|
|
169
178
|
Manual
|
170
179
|
--------------
|
@@ -176,7 +185,7 @@ Sample
|
|
176
185
|
|
177
186
|
### AWS EC2 Volume Backup Script
|
178
187
|
|
179
|
-
First you make configuration file.
|
188
|
+
First you make the configuration file.
|
180
189
|
|
181
190
|
Config File : `${RB_HOME}/conf/ec2_create_snapshot.yaml`
|
182
191
|
|
@@ -186,7 +195,7 @@ secret_key : JoqJSdP8+tpdFYWljVbG0+XXXXXXXXXXXXXXX
|
|
186
195
|
|
187
196
|
```
|
188
197
|
|
189
|
-
Next, you write script.
|
198
|
+
Next, you write the script.
|
190
199
|
|
191
200
|
Script : `${RB_HOME}/bin/ec2_create_snapshot.rb`
|
192
201
|
|
@@ -225,7 +234,7 @@ end
|
|
225
234
|
|
226
235
|
```
|
227
236
|
|
228
|
-
Finally
|
237
|
+
Finally you run the script, then following logfile is output.
|
229
238
|
|
230
239
|
Log file : `${RB_HOME}/log/20140121_123124_ec2_create_snapshot.log`
|
231
240
|
|
@@ -242,14 +251,14 @@ Log file : `${RB_HOME}/log/20140121_123124_ec2_create_snapshot.log`
|
|
242
251
|
[2014-01-21 12:31:25 -0500] [INFO ] sucess
|
243
252
|
```
|
244
253
|
|
245
|
-
Only you write a
|
254
|
+
Only you write a short code, this batch script has logging and read-config function.
|
246
255
|
|
247
256
|
Customize
|
248
257
|
--------------
|
249
258
|
If you want to customize RBatch, you have two methods.
|
250
259
|
|
251
260
|
* (1) Write Run-Conf(`${RB_HOME}/.rbatchrc`).
|
252
|
-
* (2) Pass an option object to constructor in
|
261
|
+
* (2) Pass an option object to constructor of RBatch classes in a script.
|
253
262
|
|
254
263
|
When an option is set in both (1) and (2), (2) is prior to (1).
|
255
264
|
|
data/lib/rbatch/log.rb
CHANGED
@@ -217,7 +217,7 @@ module RBatch
|
|
217
217
|
if Dir.exists?(@vars[:log_dir]) && @vars.raw_value(:log_name).include?("<date>")
|
218
218
|
Dir::foreach(@vars[:log_dir]) do |file|
|
219
219
|
r = Regexp.new("^" \
|
220
|
-
+ @vars.raw_value(:log_name).gsub("<prog>",@vars[:
|
220
|
+
+ @vars.raw_value(:log_name).gsub("<prog>",@vars[:program_noext])\
|
221
221
|
.gsub("<time>","[0-2][0-9][0-5][0-9][0-5][0-9]")\
|
222
222
|
.gsub("<date>","([0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9])")\
|
223
223
|
+ "$")
|
data/lib/rbatch/version.rb
CHANGED
data/rbatch.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |gem|
|
|
8
8
|
gem.version = RBatch::VERSION
|
9
9
|
gem.authors = ["fetaro"]
|
10
10
|
gem.email = ["fetaro@gmail.com"]
|
11
|
-
gem.description = "
|
12
|
-
gem.summary = "
|
11
|
+
gem.description = "Batch Script Framework"
|
12
|
+
gem.summary = "Batch Script Framework"
|
13
13
|
gem.homepage = "https://github.com/fetaro/rbatch"
|
14
14
|
|
15
15
|
gem.files = `git ls-files`.split($/)
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: rbatch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 2.1.
|
5
|
+
version: 2.1.8
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- fetaro
|
@@ -10,10 +10,10 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2014-
|
13
|
+
date: 2014-03-17 00:00:00 Z
|
14
14
|
dependencies: []
|
15
15
|
|
16
|
-
description:
|
16
|
+
description: Batch Script Framework
|
17
17
|
email:
|
18
18
|
- fetaro@gmail.com
|
19
19
|
executables:
|
@@ -24,6 +24,7 @@ extra_rdoc_files: []
|
|
24
24
|
|
25
25
|
files:
|
26
26
|
- .gitignore
|
27
|
+
- .travis.yml
|
27
28
|
- CHANGELOG
|
28
29
|
- Gemfile
|
29
30
|
- LICENSE.txt
|
@@ -93,7 +94,7 @@ rubyforge_project:
|
|
93
94
|
rubygems_version: 1.7.1
|
94
95
|
signing_key:
|
95
96
|
specification_version: 3
|
96
|
-
summary:
|
97
|
+
summary: Batch Script Framework
|
97
98
|
test_files:
|
98
99
|
- spec/01_rbach_spec.rb
|
99
100
|
- spec/rbatch/cmd_spec.rb
|