diff options
-rw-r--r-- | docs/Configuration.md | 3 | ||||
-rw-r--r-- | lib/oxidized/config.rb | 3 | ||||
-rw-r--r-- | lib/oxidized/node.rb | 7 |
3 files changed, 11 insertions, 2 deletions
diff --git a/docs/Configuration.md b/docs/Configuration.md index aebfbc5..57fe4c0 100644 --- a/docs/Configuration.md +++ b/docs/Configuration.md @@ -125,6 +125,9 @@ threads: 30 timeout: 20 retries: 3 prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/ +crash: + directory: ~/.config/oxidized/crashes + hostnames: false vars: enable: S3cr3tx groups: {} diff --git a/lib/oxidized/config.rb b/lib/oxidized/config.rb index 115e035..25c689a 100644 --- a/lib/oxidized/config.rb +++ b/lib/oxidized/config.rb @@ -35,6 +35,9 @@ module Oxidized asetus.default.models = {} # model level configuration asetus.default.pid = File.join(Oxidized::Config::Root, 'pid') + asetus.default.crash.directory = File.join(Oxidized::Config::Root, 'crashes') + asetus.default.crash.hostnames = false + asetus.default.stats.history_size = 10 asetus.default.input.default = 'ssh, telnet' asetus.default.input.debug = false # or String for session log file diff --git a/lib/oxidized/node.rb b/lib/oxidized/node.rb index 9dfeb19..e012b23 100644 --- a/lib/oxidized/node.rb +++ b/lib/oxidized/node.rb @@ -74,8 +74,11 @@ module Oxidized Oxidized.logger.send(level, '%s raised %s%s with msg "%s"' % [self.ip, err.class, resc, err.message]) return false rescue => err - file = Oxidized::Config::Crash + '.' + self.ip.to_s - open file, 'w' do |fh| + crashdir = Oxidized.config.crash.directory + crashfile = Oxidized.config.crash.hostnames? ? self.name : self.ip.to_s + FileUtils.mkdir_p(crashdir) unless File.directory?(crashdir) + + open File.join(crashdir, crashfile), 'w' do |fh| fh.puts Time.now.utc fh.puts err.message + ' [' + err.class.to_s + ']' fh.puts '-' * 50 |