rbatch 1.8.2 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +4 -0
- data/README.ja.md +2 -1
- data/README.md +5 -4
- data/lib/rbatch/log.rb +2 -1
- data/lib/rbatch/version.rb +1 -1
- data/lib/rbatch.rb +18 -2
- data/sample/bin/log_backup.rb +20 -0
- data/sample/conf/log_backup.yaml +4 -0
- data/test/cases/test_log.rb +9 -0
- metadata +3 -1
data/CHANGELOG
CHANGED
data/README.ja.md
CHANGED
@@ -16,7 +16,7 @@ RBatchについて
|
|
16
16
|
* ファイル名・ディレクトリ構造制約
|
17
17
|
* 二重起動チェック
|
18
18
|
|
19
|
-
このフレームワークはRuby 1.9.x
|
19
|
+
このフレームワークはRuby 1.9.x以降で動作します。また、Rubyプラットフォームは"linux","mswin","mingw","cygwin"で動作します。
|
20
20
|
|
21
21
|
### 自動ログ出力
|
22
22
|
Logging blockを使うことで、自動的にログファイルに出力することができます。
|
@@ -223,6 +223,7 @@ $ cat log/YYYYMMDD_HHMMSS_backup.log
|
|
223
223
|
# <data> --> YYYYMMDDの日付形式に置換されます
|
224
224
|
# <time> --> hhmmssの時刻形式に置換されます
|
225
225
|
# <prog> --> 拡張子を除いたファイル名に置換されます
|
226
|
+
# <host> --> ホスト名に置換されます
|
226
227
|
#
|
227
228
|
#log_name : "<date>_<time>_<prog>.log"
|
228
229
|
#log_name : "<date>_<prog>.log"
|
data/README.md
CHANGED
@@ -15,7 +15,7 @@ There are following functions.
|
|
15
15
|
* Directory Structure convention
|
16
16
|
* Double Run Check
|
17
17
|
|
18
|
-
This work on
|
18
|
+
This work on Ruby 1.9.x or later, and on Ruby platform of "linux","mswin","mingw","cygwin".
|
19
19
|
|
20
20
|
### Auto Logging
|
21
21
|
Use Auto Logging block, RBatch automatically write to logfile.
|
@@ -218,9 +218,10 @@ Config Sample
|
|
218
218
|
#
|
219
219
|
# Default is "<date>_<time>_<prog>.log".
|
220
220
|
# Reservation words are follows.
|
221
|
-
# <data> -->
|
222
|
-
# <time> -->
|
223
|
-
# <prog> --> Program file base name (except extention)
|
221
|
+
# <data> --> Replace to YYYYMMDD date string
|
222
|
+
# <time> --> Replace to HHMMSS time string
|
223
|
+
# <prog> --> Replace to Program file base name (except extention).
|
224
|
+
# <host> --> Replace to Hostname.
|
224
225
|
#
|
225
226
|
#log_name : "<date>_<time>_<prog>.log"
|
226
227
|
#log_name : "<date>_<prog>.log"
|
data/lib/rbatch/log.rb
CHANGED
@@ -80,7 +80,7 @@ module RBatch
|
|
80
80
|
#
|
81
81
|
# ==== Params
|
82
82
|
# +opt+ = Option hash object. Hash keys is follows.
|
83
|
-
# - +:name+ (String) = log file name. Default is "<date>_<time>_<prog>.log"
|
83
|
+
# - +:name+ (String) = log file name. Default is "<date>_<time>_<prog>.log".Reservation words are "<date>","<time>","<prog>","<host>".
|
84
84
|
# - +:dir+ (String) = log direcotry path. Default is "../log"
|
85
85
|
# - +:level+ (String) = log level. ["debug"|"info"|"warn"|"error"|"fatal"] . Default is "info".
|
86
86
|
# - +:append+ (Boolean) = appned to log or not(=overwrite). Default is ture.
|
@@ -115,6 +115,7 @@ module RBatch
|
|
115
115
|
@file_name.gsub!("<date>", Time.now.strftime("%Y%m%d"))
|
116
116
|
@file_name.gsub!("<time>", Time.now.strftime("%H%M%S"))
|
117
117
|
@file_name.gsub!("<prog>", @prog_base)
|
118
|
+
@file_name.gsub!("<host>", RBatch::hostname)
|
118
119
|
path = File.join(@opt[:dir],@file_name)
|
119
120
|
# create Logger instance
|
120
121
|
begin
|
data/lib/rbatch/version.rb
CHANGED
data/lib/rbatch.rb
CHANGED
@@ -5,12 +5,28 @@ module RBatch
|
|
5
5
|
module_function
|
6
6
|
def program_name=(f) ; @@program_name = f ; end
|
7
7
|
def program_name ; @@program_name ; end
|
8
|
+
# Hostname
|
9
|
+
def hostname
|
10
|
+
case RUBY_PLATFORM
|
11
|
+
when /mswin|mingw/
|
12
|
+
return ENV["COMPUTERNAME"] ? ENV["COMPUTERNAME"] : "unknownhost"
|
13
|
+
when /cygwin|linux/
|
14
|
+
return ENV["HOSTNAME"] ? ENV["HOSTNAME"] : "unknownhost"
|
15
|
+
else
|
16
|
+
raise "Unknown RUBY_PRATFORM : " + RUBY_PLATFORM
|
17
|
+
end
|
18
|
+
end
|
19
|
+
# tmp dir
|
8
20
|
def tmp_dir
|
9
21
|
case RUBY_PLATFORM
|
10
22
|
when /mswin|mingw/
|
11
|
-
|
23
|
+
if ENV["TEMP"].nil?
|
24
|
+
raise "Cannot use temporary directory, because ENV[\"TEMP\"] is not defined"
|
25
|
+
else
|
26
|
+
return ENV["TEMP"]
|
27
|
+
end
|
12
28
|
when /cygwin|linux/
|
13
|
-
return "/tmp
|
29
|
+
return ENV["TMPDIR"] ? ENV["TMPDIR"] : "/tmp"
|
14
30
|
else
|
15
31
|
raise "Unknown RUBY_PRATFORM : " + RUBY_PLATFORM
|
16
32
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'rbatch'
|
3
|
+
require 'fileutils'
|
4
|
+
require 'date'
|
5
|
+
|
6
|
+
RBatch::Log.new do |log|
|
7
|
+
log.info("Start---------------")
|
8
|
+
target_dir = RBatch::config["target_dir"]
|
9
|
+
RBatch::config["file_list"].each do |file_wildcard|
|
10
|
+
Dir::glob(file_wildcard).each do |file|
|
11
|
+
if ! File.exists?(File.join(target_dir,File.basename(file)))
|
12
|
+
log.info("Copy " + file + " to " + target_dir)
|
13
|
+
FileUtils.cp(file,target_dir)
|
14
|
+
else
|
15
|
+
log.info("Skip " + file + " (already backuped)")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
data/test/cases/test_log.rb
CHANGED
@@ -459,6 +459,15 @@ class LoggerTest < Test::Unit::TestCase
|
|
459
459
|
}
|
460
460
|
end
|
461
461
|
|
462
|
+
def test_i_change_name_by_opt_with_host
|
463
|
+
log = RBatch::Log.new({:name => "<prog><date><host>name.log" })
|
464
|
+
log.info("test_change_name_by_opt_with_host")
|
465
|
+
log.close
|
466
|
+
File::open(File.join(@dir , "test_log" + Time.now.strftime("%Y%m%d") + RBatch::hostname + "name.log")) {|f|
|
467
|
+
assert_match /test_change_name_by_opt_with_host/, f.read
|
468
|
+
}
|
469
|
+
end
|
470
|
+
|
462
471
|
|
463
472
|
def test_i_log_level_default
|
464
473
|
log = RBatch::Log.new({ :name => "test_level" })
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: rbatch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.
|
5
|
+
version: 1.9.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- fetaro
|
@@ -80,12 +80,14 @@ files:
|
|
80
80
|
- rbatch.gemspec
|
81
81
|
- sample/bin/apache_log_insert.rb
|
82
82
|
- sample/bin/file_batch_copy.rb
|
83
|
+
- sample/bin/log_backup.rb
|
83
84
|
- sample/bin/mysql_data_backup.rb
|
84
85
|
- sample/bin/openam_log_insert.rb
|
85
86
|
- sample/bin/openldap_backup.rb
|
86
87
|
- sample/bin/webagent_log_insert.rb
|
87
88
|
- sample/conf/apache_log_insert.yaml
|
88
89
|
- sample/conf/file_batch_copy.yaml
|
90
|
+
- sample/conf/log_backup.yaml
|
89
91
|
- sample/conf/mysql_data_backup.yaml
|
90
92
|
- sample/conf/openam_log_insert.yaml
|
91
93
|
- sample/conf/openldap_backup.yaml
|