rbatch 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +25 -0
- data/LICENSE +0 -0
- data/README.ja.md +280 -0
- data/README.md +280 -0
- data/Rakefile +66 -0
- data/VERSION +1 -0
- data/doc/rdoc/CHANGELOG.html +160 -0
- data/doc/rdoc/LICENSE.html +94 -0
- data/doc/rdoc/RBatch.html +476 -0
- data/doc/rdoc/RBatch/Cmd.html +329 -0
- data/doc/rdoc/RBatch/CmdException.html +154 -0
- data/doc/rdoc/RBatch/CmdResult.html +492 -0
- data/doc/rdoc/RBatch/Log.html +739 -0
- data/doc/rdoc/created.rid +8 -0
- data/doc/rdoc/images/brick.png +0 -0
- data/doc/rdoc/images/brick_link.png +0 -0
- data/doc/rdoc/images/bug.png +0 -0
- data/doc/rdoc/images/bullet_black.png +0 -0
- data/doc/rdoc/images/bullet_toggle_minus.png +0 -0
- data/doc/rdoc/images/bullet_toggle_plus.png +0 -0
- data/doc/rdoc/images/date.png +0 -0
- data/doc/rdoc/images/find.png +0 -0
- data/doc/rdoc/images/loadingAnimation.gif +0 -0
- data/doc/rdoc/images/macFFBgHack.png +0 -0
- data/doc/rdoc/images/package.png +0 -0
- data/doc/rdoc/images/page_green.png +0 -0
- data/doc/rdoc/images/page_white_text.png +0 -0
- data/doc/rdoc/images/page_white_width.png +0 -0
- data/doc/rdoc/images/plugin.png +0 -0
- data/doc/rdoc/images/ruby.png +0 -0
- data/doc/rdoc/images/tag_green.png +0 -0
- data/doc/rdoc/images/wrench.png +0 -0
- data/doc/rdoc/images/wrench_orange.png +0 -0
- data/doc/rdoc/images/zoom.png +0 -0
- data/doc/rdoc/index.html +124 -0
- data/doc/rdoc/js/darkfish.js +116 -0
- data/doc/rdoc/js/jquery.js +32 -0
- data/doc/rdoc/js/quicksearch.js +114 -0
- data/doc/rdoc/js/thickbox-compressed.js +10 -0
- data/doc/rdoc/lib/rbatch/cmd_rb.html +56 -0
- data/doc/rdoc/lib/rbatch/config_rb.html +56 -0
- data/doc/rdoc/lib/rbatch/log_rb.html +58 -0
- data/doc/rdoc/lib/rbatch_rb.html +58 -0
- data/doc/rdoc/rdoc.css +706 -0
- data/lib/rbatch.rb +51 -0
- data/lib/rbatch/cmd.rb +118 -0
- data/lib/rbatch/config.rb +29 -0
- data/lib/rbatch/log.rb +205 -0
- data/sample/bin/file_batch_copy.rb +9 -0
- data/sample/bin/openldap_backup.rb +7 -0
- data/sample/bin/test.rb +12 -0
- data/sample/config/file_batch_copy.yaml +5 -0
- data/sample/config/openldap_backup.yaml +2 -0
- data/sample/config/rbatch.yaml +68 -0
- data/sample/log/empty +0 -0
- data/test/cases/test_cmd.rb +120 -0
- data/test/cases/test_config.rb +34 -0
- data/test/cases/test_log.rb +594 -0
- data/test/config/rbatch.yaml +0 -0
- data/test/mocks/PrintArgs.exe +0 -0
- data/test/mocks/win_cmd.exe +0 -0
- metadata +173 -0
data/CHANGELOG
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
1.0.0
|
2
|
+
-----
|
3
|
+
initial
|
4
|
+
|
5
|
+
1.1.0(2012/11/9)
|
6
|
+
-----
|
7
|
+
* make common config file
|
8
|
+
* change log option
|
9
|
+
|
10
|
+
1.2.0(2012/11/13)
|
11
|
+
-----
|
12
|
+
* change log level option format
|
13
|
+
* make log append option
|
14
|
+
|
15
|
+
1.3.0(2012/12/30)
|
16
|
+
-----
|
17
|
+
* add RBatch::Log to instance interface
|
18
|
+
* add double run check option
|
19
|
+
|
20
|
+
1.4.0(2013/1/5)
|
21
|
+
----
|
22
|
+
* add log_stdout option
|
23
|
+
* add sample code
|
24
|
+
* add cmd_raise option
|
25
|
+
* add log_delete_old_log option
|
data/LICENSE
ADDED
File without changes
|
data/README.ja.md
ADDED
@@ -0,0 +1,280 @@
|
|
1
|
+
[[English]](https://github.com/fetaro/rbatch/blob/master/README.md "english") [[Japanese]](https://github.com/fetaro/rbatch/blob/master/README.ja.md "japanese")
|
2
|
+
|
3
|
+
RBatch:Ruby-base バッチスクリプトフレームワーク
|
4
|
+
=============
|
5
|
+
|
6
|
+
RBatchについて
|
7
|
+
--------------
|
8
|
+
これはRubyで書かれたバッチスクリプトのフレームワークです。
|
9
|
+
バッチスクリプト(バックアップやプロセスリロード等)を書く際に便利な機能をフレームワークとして提供しています。
|
10
|
+
|
11
|
+
主な機能は以下のとおり。
|
12
|
+
|
13
|
+
* 自動ログ出力
|
14
|
+
* 自動設定ファイル読み込み
|
15
|
+
* 外部コマンド実行
|
16
|
+
* ファイル名・ディレクトリ構造制約
|
17
|
+
* 二重起動チェック
|
18
|
+
|
19
|
+
このフレームワークはRuby 1.9.x以降のみで動作します。
|
20
|
+
|
21
|
+
### 自動ログ出力
|
22
|
+
Logging blockを使うことで、自動的にログファイルに出力することができます。
|
23
|
+
ログファイルはデフォルトで"../log/YYYYMMDD_HHMMSS_${PROG_NAME}.log"に出力されます。
|
24
|
+
例外が発生した場合でも、ログにスタックトレースを出力することができます。
|
25
|
+
|
26
|
+
サンプル
|
27
|
+
|
28
|
+
スクリプト : ./bin/sample1.rb
|
29
|
+
```
|
30
|
+
require 'rbatch'
|
31
|
+
|
32
|
+
RBatch::Log.new(){ |log| # Logging block
|
33
|
+
log.info "info string"
|
34
|
+
log.error "error string"
|
35
|
+
raise "exception"
|
36
|
+
}
|
37
|
+
```
|
38
|
+
|
39
|
+
ログファイル : ./log/20121020_005953_sample1.log
|
40
|
+
```
|
41
|
+
# Logfile created on 2012-10-20 00:59:53 +0900 by logger.rb/25413
|
42
|
+
I, [2012-10-20T00:59:53.895528 #3208] INFO -- : info string
|
43
|
+
E, [2012-10-20T00:59:53.895582 #3208] ERROR -- : error string
|
44
|
+
F, [2012-10-20T00:59:53.895629 #3208] FATAL -- : Caught exception; existing 1
|
45
|
+
F, [2012-10-20T00:59:53.895667 #3208] FATAL -- : exception (RuntimeError)
|
46
|
+
test.rb:6:in `block in <main>'
|
47
|
+
/usr/local/lib/ruby192/lib/ruby/gems/1.9.1/gems/rbatch-1.0.0/lib/rbatch/auto_logger.rb:37:in `initialize'
|
48
|
+
test.rb:3:in `new'
|
49
|
+
test.rb:3:in `<main>'
|
50
|
+
```
|
51
|
+
|
52
|
+
### 自動設定ファイル読み込み
|
53
|
+
|
54
|
+
RBatchは簡単にデフォルトの位置の設定ファイルを読み込めます。
|
55
|
+
デフォルトの位置は"../config/${PROG_NAME}.yaml"です。
|
56
|
+
|
57
|
+
サンプル
|
58
|
+
|
59
|
+
設定ファイル : ./config/sample2.yaml
|
60
|
+
```
|
61
|
+
key: value
|
62
|
+
array:
|
63
|
+
- item1
|
64
|
+
- item2
|
65
|
+
- item3
|
66
|
+
```
|
67
|
+
|
68
|
+
スクリプト : ./bin/sample2.rb
|
69
|
+
```
|
70
|
+
require 'rbatch'
|
71
|
+
p RBatch::config
|
72
|
+
=> {"key" => "value", "array" => ["item1", "item2", "item3"]}
|
73
|
+
```
|
74
|
+
|
75
|
+
### 外部コマンド実行
|
76
|
+
RBatchは外部コマンド(たとえば"ls -l")を実行するラッパー関数を提供します。
|
77
|
+
|
78
|
+
この関数は、実行結果をオブジェクトで返し、そのオブジェクトは標準出力、標準エラー出力、およびexitステータスを含みます。
|
79
|
+
|
80
|
+
サンプル
|
81
|
+
```
|
82
|
+
require 'rbatch'
|
83
|
+
r = RBatch::cmd("ls")
|
84
|
+
p r.stdout
|
85
|
+
=> "fileA\nfileB\n"
|
86
|
+
p r.stderr
|
87
|
+
=> ""
|
88
|
+
p r.status
|
89
|
+
=> 0
|
90
|
+
```
|
91
|
+
|
92
|
+
### ファイル名・ディレクトリ構造制約
|
93
|
+
|
94
|
+
RBatchでは、「設定より規約」(convention over configuration)という原則に従い、バッチスクリプトで必要になるファイル群に、ファイル名とディレクトリ構造の制約をもたせます。
|
95
|
+
|
96
|
+
具体的には、"bin/hoge.rb"というバッチスクリプトでは、"conf/hoge.yaml"という設定ファイルを読み、
|
97
|
+
"log/YYYYMMDD_HHMMSS_hoge.rb"というログを出力するという規則です。
|
98
|
+
|
99
|
+
これにより、バッチスクリプトの可読性・保守性が向上します。
|
100
|
+
|
101
|
+
```
|
102
|
+
./
|
103
|
+
|-bin
|
104
|
+
| |- hoge.rb
|
105
|
+
| |- bar.rb
|
106
|
+
|-config
|
107
|
+
| |- hoge.yaml
|
108
|
+
| |- bar.yaml
|
109
|
+
|-log
|
110
|
+
|- YYYYMMDD_HHMMSS_hoge.log
|
111
|
+
|- YYYYMMDD_HHMMSS_bar.log
|
112
|
+
```
|
113
|
+
|
114
|
+
### 二重起動チェック
|
115
|
+
|
116
|
+
RBatchの共通設定ファイルに"forbid_double_run: true"の設定を書けば、RBatchを利用したスクリプトの二重起動チェックができます。
|
117
|
+
|
118
|
+
クイックスタート
|
119
|
+
--------------
|
120
|
+
### ステップ1: インストール
|
121
|
+
|
122
|
+
```
|
123
|
+
# git clone https://github.com/fetaro/rbatch.git
|
124
|
+
# cd rbatch
|
125
|
+
# rake package
|
126
|
+
# gem install pkg/rbatch-1.0.0
|
127
|
+
```
|
128
|
+
|
129
|
+
### ステップ2: ディレクトリ作成
|
130
|
+
|
131
|
+
```
|
132
|
+
$ mkdir bin log config
|
133
|
+
```
|
134
|
+
|
135
|
+
### ステップ3: バッチスクリプト作成
|
136
|
+
|
137
|
+
bin/backup.rbは以下の通り。
|
138
|
+
```
|
139
|
+
require 'rbatch'
|
140
|
+
|
141
|
+
RBatch::Log.new(){|log|
|
142
|
+
log.info( "start backup" )
|
143
|
+
result = RBatch::cmd( "cp -p /var/log/message /backup")
|
144
|
+
log.info( result )
|
145
|
+
log.error ( "backup failed") if result.status != 0
|
146
|
+
}
|
147
|
+
```
|
148
|
+
|
149
|
+
### ステップ4: 実行
|
150
|
+
|
151
|
+
```
|
152
|
+
$ ruby bin/backup.rb
|
153
|
+
```
|
154
|
+
|
155
|
+
### ステップ5: 確認
|
156
|
+
|
157
|
+
自動的にlog/YYYYMMDD_HHMMSS_backup.logにログファイルが出ます。
|
158
|
+
|
159
|
+
```
|
160
|
+
$ cat log/YYYYMMDD_HHMMSS_backup.log
|
161
|
+
|
162
|
+
# Logfile created on 2012-10-20 00:19:23 +0900 by logger.rb/25413
|
163
|
+
I, [2012-10-20T00:19:23.422876 #2357] INFO -- : start backup
|
164
|
+
I, [2012-10-20T00:19:23.424773 #2357] INFO -- : {:stdout=>"", :stderr=>"cp: cannot stat `/var/log/message': No such file or directory\n", :status=>1}
|
165
|
+
E, [2012-10-20T00:19:23.424882 #2357] ERROR -- : backup failed
|
166
|
+
```
|
167
|
+
|
168
|
+
|
169
|
+
マニュアル
|
170
|
+
--------------
|
171
|
+
|
172
|
+
### RBatch全体設定ファイル
|
173
|
+
|
174
|
+
以下の場所にRBatch全体設定ファイルを配置すると、全てのスクリプトにてオプションが適用される。
|
175
|
+
|
176
|
+
```
|
177
|
+
(スクリプトのパス)/../config/rbatch.yaml
|
178
|
+
```
|
179
|
+
|
180
|
+
設定ファイルのサンプルは以下の通り
|
181
|
+
```
|
182
|
+
# RBatch 全体設定
|
183
|
+
#
|
184
|
+
# 設定ファイルの形式はYAML形式です
|
185
|
+
#
|
186
|
+
|
187
|
+
# -------------------
|
188
|
+
# 全体
|
189
|
+
# -------------------
|
190
|
+
|
191
|
+
# スクリプトの二重起動を可能にするかどうか
|
192
|
+
#
|
193
|
+
# trueにすると、requireしたタイミングで例外を投げます。
|
194
|
+
#
|
195
|
+
# Default : false
|
196
|
+
#
|
197
|
+
#forbid_double_run: true
|
198
|
+
|
199
|
+
# -------------------
|
200
|
+
# 外部コマンド実行関連
|
201
|
+
# -------------------
|
202
|
+
|
203
|
+
# 例外発生機能を有効にするかどうか
|
204
|
+
#
|
205
|
+
# Default : false
|
206
|
+
#
|
207
|
+
# trueの場合、コマンドの終了ステータスが0でない場合に例外を発生する。
|
208
|
+
#
|
209
|
+
#cmd_raise: true
|
210
|
+
|
211
|
+
# -------------------
|
212
|
+
# ログ関連
|
213
|
+
# -------------------
|
214
|
+
|
215
|
+
# ログファイル名
|
216
|
+
#
|
217
|
+
# Default : "<date>_<time>_<prog>.log"
|
218
|
+
#
|
219
|
+
# 予約語
|
220
|
+
# <data> --> YYYYMMDDの日付形式に置換されます
|
221
|
+
# <time> --> hhmmssの時刻形式に置換されます
|
222
|
+
# <prog> --> 拡張子を除いたファイル名に置換されます
|
223
|
+
#
|
224
|
+
#log_name : "<date>_<time>_<prog>.log"
|
225
|
+
#log_name : "<date>_<prog>.log"
|
226
|
+
|
227
|
+
# ログ出力ディレクトリ
|
228
|
+
#
|
229
|
+
# Default : "(スクリプトの配置パス)/../log"
|
230
|
+
#
|
231
|
+
#log_dir : "/tmp/log"
|
232
|
+
|
233
|
+
# ログを追記するかどうか
|
234
|
+
#
|
235
|
+
# Default : ture
|
236
|
+
#
|
237
|
+
#log_append : false
|
238
|
+
|
239
|
+
# ログレベル
|
240
|
+
#
|
241
|
+
# Default : "info"
|
242
|
+
# Value : "debug","info","wran","error","fatal"
|
243
|
+
#
|
244
|
+
#log_level : "debug"
|
245
|
+
|
246
|
+
# 標準出力とログの両方に文字列を出力するかどうか
|
247
|
+
#
|
248
|
+
# Default : false
|
249
|
+
#
|
250
|
+
#log_stdout : true
|
251
|
+
|
252
|
+
# 古いログを削除するかどうか
|
253
|
+
#
|
254
|
+
# trueの場合、RBatch::Log.newを呼んだタイミングで、古いログを削除する。
|
255
|
+
# 削除対象のログは、そのRBatch::Logのインスタンスが出力するログファイルと
|
256
|
+
# 同じファイル名フォーマットであり、かつログファイル名のフォーマットに<date>が
|
257
|
+
# 含まれるもの。
|
258
|
+
# 例えば、RBatch::Logで出力するログファイルが「20120105_hoge.log」だった場合、
|
259
|
+
# 削除対象のログは「YYYYMMDD_hoge.log」のログとなる。
|
260
|
+
#
|
261
|
+
# Default : false
|
262
|
+
#
|
263
|
+
#log_delete_old_log: true
|
264
|
+
|
265
|
+
# 古いログの残す日数
|
266
|
+
#
|
267
|
+
# Default : 7
|
268
|
+
#
|
269
|
+
#log_delete_old_log_date: 14
|
270
|
+
|
271
|
+
```
|
272
|
+
|
273
|
+
|
274
|
+
テスト方法
|
275
|
+
--------------
|
276
|
+
```
|
277
|
+
ruby -I lib test/cases/test_config.rb
|
278
|
+
ruby -I lib test/cases/test_cmd.rb
|
279
|
+
ruby -I lib test/cases/test_log.rb
|
280
|
+
```
|
data/README.md
ADDED
@@ -0,0 +1,280 @@
|
|
1
|
+
[[English]](https://github.com/fetaro/rbatch/blob/master/README.md "english") [[Japanese]](https://github.com/fetaro/rbatch/blob/master/README.ja.md "japanese")
|
2
|
+
|
3
|
+
RBatch:Ruby-base Batch Script Framework
|
4
|
+
=============
|
5
|
+
|
6
|
+
About RBatch
|
7
|
+
--------------
|
8
|
+
This is a Ruby-base Batch Script Framework. RBatch offer a convenient function as a framework, when you write a batch script such as "data backup script" or "proccess start script".
|
9
|
+
|
10
|
+
There are following functions.
|
11
|
+
|
12
|
+
* Auto Logging
|
13
|
+
* Auto Config Reading
|
14
|
+
* External Command Wrapper
|
15
|
+
* Directory Structure convention
|
16
|
+
* Double Run Check
|
17
|
+
|
18
|
+
This work on only Ruby 1.9.x or more later.
|
19
|
+
|
20
|
+
### Auto Logging
|
21
|
+
Use Auto Logging block, RBatch automatically write to logfile.
|
22
|
+
Log file default location is "../log/YYYYMMDD_HHMMSS_${PROG_NAME}.log" .
|
23
|
+
If exception occuerd, then RBatch write stack trace to logfile.
|
24
|
+
|
25
|
+
sample
|
26
|
+
|
27
|
+
script : ./bin/sample1.rb
|
28
|
+
```
|
29
|
+
require 'rbatch'
|
30
|
+
|
31
|
+
RBatch::Log.new(){ |log| # Logging block
|
32
|
+
log.info "info string"
|
33
|
+
log.error "error string"
|
34
|
+
raise "exception"
|
35
|
+
}
|
36
|
+
```
|
37
|
+
|
38
|
+
logfile : ./log/20121020_005953_sample1.log
|
39
|
+
```
|
40
|
+
# Logfile created on 2012-10-20 00:59:53 +0900 by logger.rb/25413
|
41
|
+
I, [2012-10-20T00:59:53.895528 #3208] INFO -- : info string
|
42
|
+
E, [2012-10-20T00:59:53.895582 #3208] ERROR -- : error string
|
43
|
+
F, [2012-10-20T00:59:53.895629 #3208] FATAL -- : Caught exception; existing 1
|
44
|
+
F, [2012-10-20T00:59:53.895667 #3208] FATAL -- : exception (RuntimeError)
|
45
|
+
test.rb:6:in `block in <main>'
|
46
|
+
/usr/local/lib/ruby192/lib/ruby/gems/1.9.1/gems/rbatch-1.0.0/lib/rbatch/auto_logger.rb:37:in `initialize'
|
47
|
+
test.rb:3:in `new'
|
48
|
+
test.rb:3:in `<main>'
|
49
|
+
```
|
50
|
+
|
51
|
+
### Auto Config Reading
|
52
|
+
|
53
|
+
RBatch easy to read config file (located on "../config/${PROG_NAME}.yaml")
|
54
|
+
|
55
|
+
sample
|
56
|
+
|
57
|
+
config : ./config/sample2.yaml
|
58
|
+
```
|
59
|
+
key: value
|
60
|
+
array:
|
61
|
+
- item1
|
62
|
+
- item2
|
63
|
+
- item3
|
64
|
+
```
|
65
|
+
|
66
|
+
script : ./bin/sample2.rb
|
67
|
+
```
|
68
|
+
require 'rbatch'
|
69
|
+
p RBatch::config
|
70
|
+
=> {"key" => "value", "array" => ["item1", "item2", "item3"]}
|
71
|
+
```
|
72
|
+
|
73
|
+
### External Command Wrapper
|
74
|
+
RBatch provide a function which wrap external command (such as 'ls').
|
75
|
+
|
76
|
+
This function return a result object which contain command's STDOUT, STDERR ,and exit status.
|
77
|
+
|
78
|
+
sample
|
79
|
+
```
|
80
|
+
require 'rbatch'
|
81
|
+
r = RBatch::cmd("ls")
|
82
|
+
p r.stdout
|
83
|
+
=> "fileA\nfileB\n"
|
84
|
+
p r.stderr
|
85
|
+
=> ""
|
86
|
+
p r.status
|
87
|
+
=> 0
|
88
|
+
```
|
89
|
+
|
90
|
+
### Directory Structure Convention
|
91
|
+
|
92
|
+
Follow the axiom of "convention over configuration", RBatch restrict file naming rule and directory structure.
|
93
|
+
|
94
|
+
For exsample, If you make "bin/hoge.rb", you should name config file to "conf/hoge.yaml". And the name of log file is decided on "log/YYYYMMDD_HHMMSS_hoge.rb"
|
95
|
+
|
96
|
+
In this way, maintainability and readability of batch script get higher.
|
97
|
+
|
98
|
+
```
|
99
|
+
./
|
100
|
+
|-bin
|
101
|
+
| |- hoge.rb
|
102
|
+
| |- bar.rb
|
103
|
+
|-config
|
104
|
+
| |- hoge.yaml
|
105
|
+
| |- bar.yaml
|
106
|
+
|-log
|
107
|
+
|- YYYYMMDD_HHMMSS_hoge.log
|
108
|
+
|- YYYYMMDD_HHMMSS_bar.log
|
109
|
+
```
|
110
|
+
|
111
|
+
### Double Run Check
|
112
|
+
|
113
|
+
Forbit double run of the RBatch script by writing option "forbid_double_run: true" to the common configuration file.
|
114
|
+
|
115
|
+
Quick Start
|
116
|
+
--------------
|
117
|
+
### Step1: Install
|
118
|
+
|
119
|
+
```
|
120
|
+
# git clone https://github.com/fetaro/rbatch.git
|
121
|
+
# cd rbatch
|
122
|
+
# rake package
|
123
|
+
# gem install pkg/rbatch-1.0.0
|
124
|
+
```
|
125
|
+
|
126
|
+
### Step2: Make directories
|
127
|
+
|
128
|
+
```
|
129
|
+
$ mkdir bin log config
|
130
|
+
```
|
131
|
+
|
132
|
+
### Step3: Write batch script
|
133
|
+
|
134
|
+
for bin/backup.rb
|
135
|
+
```
|
136
|
+
require 'rbatch'
|
137
|
+
|
138
|
+
RBatch::Log.new(){|log|
|
139
|
+
log.info( "start backup" )
|
140
|
+
result = RBatch::cmd( "cp -p /var/log/message /backup")
|
141
|
+
log.info( result )
|
142
|
+
log.error ( "backup failed") if result.status != 0
|
143
|
+
}
|
144
|
+
```
|
145
|
+
|
146
|
+
### Step4: Run
|
147
|
+
|
148
|
+
```
|
149
|
+
$ ruby bin/backup.rb
|
150
|
+
```
|
151
|
+
|
152
|
+
### Step5: Check
|
153
|
+
|
154
|
+
Log file is generated automatically.
|
155
|
+
|
156
|
+
```
|
157
|
+
$ cat log/YYYYMMDD_HHMMSS_backup.log
|
158
|
+
|
159
|
+
# Logfile created on 2012-10-20 00:19:23 +0900 by logger.rb/25413
|
160
|
+
I, [2012-10-20T00:19:23.422876 #2357] INFO -- : start backup
|
161
|
+
I, [2012-10-20T00:19:23.424773 #2357] INFO -- : {:stdout=>"", :stderr=>"cp: cannot stat `/var/log/message': No such file or directory\n", :status=>1}
|
162
|
+
E, [2012-10-20T00:19:23.424882 #2357] ERROR -- : backup failed
|
163
|
+
```
|
164
|
+
|
165
|
+
|
166
|
+
Manual
|
167
|
+
--------------
|
168
|
+
|
169
|
+
### Common Config File
|
170
|
+
|
171
|
+
If you make follow config file, option value effect to all scripts.
|
172
|
+
|
173
|
+
```
|
174
|
+
(script file path)/../config/rbatch.yaml
|
175
|
+
```
|
176
|
+
|
177
|
+
Config Sample
|
178
|
+
```
|
179
|
+
# RBatch Common Config
|
180
|
+
#
|
181
|
+
# This file format is YAML
|
182
|
+
#
|
183
|
+
|
184
|
+
# -------------------
|
185
|
+
# Global setting
|
186
|
+
# -------------------
|
187
|
+
|
188
|
+
# Forbit Double Run
|
189
|
+
#
|
190
|
+
# Default : false
|
191
|
+
#
|
192
|
+
#forbid_double_run: true
|
193
|
+
|
194
|
+
# -------------------
|
195
|
+
# Cmd setting
|
196
|
+
# -------------------
|
197
|
+
|
198
|
+
# Raise Exception
|
199
|
+
#
|
200
|
+
# Default : false
|
201
|
+
#
|
202
|
+
# If command exit status is not 0, raise exception.
|
203
|
+
#
|
204
|
+
#cmd_raise : true
|
205
|
+
|
206
|
+
|
207
|
+
# -------------------
|
208
|
+
# Log setting
|
209
|
+
# -------------------
|
210
|
+
|
211
|
+
# Log File Name
|
212
|
+
#
|
213
|
+
# Default : "<date>_<time>_<prog>.log"
|
214
|
+
#
|
215
|
+
# Reservation words
|
216
|
+
# <data> --> replace to YYYYMMDD date string
|
217
|
+
# <time> --> replace to hhmmss time string
|
218
|
+
# <prog> --> Program file base name (except extention)
|
219
|
+
#
|
220
|
+
#log_name : "<date>_<time>_<prog>.log"
|
221
|
+
#log_name : "<date>_<prog>.log"
|
222
|
+
|
223
|
+
# Log Output Directory
|
224
|
+
#
|
225
|
+
# Default : "(Script path)/../log"
|
226
|
+
#
|
227
|
+
#log_dir : "/tmp/log"
|
228
|
+
|
229
|
+
# Append log or not
|
230
|
+
#
|
231
|
+
# Default : ture
|
232
|
+
#
|
233
|
+
#log_append : false
|
234
|
+
|
235
|
+
# Log Level
|
236
|
+
#
|
237
|
+
# Default : "info"
|
238
|
+
# Value : "debug","info","wran","error","fatal"
|
239
|
+
#
|
240
|
+
#log_level : "debug"
|
241
|
+
|
242
|
+
# Print log-string both file and STDOUT
|
243
|
+
#
|
244
|
+
# Default : false
|
245
|
+
#
|
246
|
+
#log_stdout : true
|
247
|
+
|
248
|
+
# 標準出力とログの両方に文字列を出力するかどうか
|
249
|
+
#
|
250
|
+
# Default : false
|
251
|
+
#
|
252
|
+
#log_stdout : true
|
253
|
+
|
254
|
+
# Delete old log files
|
255
|
+
#
|
256
|
+
# If this is true, delete old log file when RBatch::Log.new is called.
|
257
|
+
# A log file to delete is a log file which was made by the RBatch::Log instance,
|
258
|
+
# and log filename format include "<date>".
|
259
|
+
#
|
260
|
+
# Default : false
|
261
|
+
#
|
262
|
+
#log_delete_old_log: true
|
263
|
+
|
264
|
+
# The day of leaving log files
|
265
|
+
#
|
266
|
+
# Default : 7
|
267
|
+
#
|
268
|
+
#log_delete_old_log_date: 14
|
269
|
+
|
270
|
+
|
271
|
+
```
|
272
|
+
|
273
|
+
|
274
|
+
How to Test
|
275
|
+
--------------
|
276
|
+
```
|
277
|
+
ruby -I lib test/cases/test_config.rb
|
278
|
+
ruby -I lib test/cases/test_cmd.rb
|
279
|
+
ruby -I lib test/cases/test_log.rb
|
280
|
+
```
|