rbatch 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
```
|