Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/ruby
- require 'aws-sdk'
- require 'shellwords'
- require 'facter'
- require 'retriable'
- ENV['DB_INSTANCE_IDENTIFIER'] or raise 'DB_INSTANCE_IDENTIFIER is required'
- rds = Aws::RDS::Client.new
- files = rds.describe_db_log_files(db_instance_identifier: ENV['DB_INSTANCE_IDENTIFIER'])
- files = files.to_h[:describe_db_log_files]
- log_file_count = ENV['LOG_FILE_COUNT'] ? ENV['LOG_FILE_COUNT'].to_i : 5
- downloaded_files = files.last(log_file_count).map do |file|
- File.basename(file[:log_file_name]).tap do |basename|
- command = ["/usr/local/RDSCli-1.19.004/bin/rds-download-db-logfile",
- "--db-instance-identifier", ENV['DB_INSTANCE_IDENTIFIER'],
- "-I", ENV['AWS_ACCESS_KEY_ID'],
- "-S", ENV['AWS_SECRET_ACCESS_KEY'],
- "--region", ENV['AWS_DEFAULT_REGION'],
- "--log-file-name", file[:log_file_name]]
- puts file[:log_file_name]
- Retriable.retriable(tries: 8) do
- system("#{Shellwords.shelljoin command} >#{basename}") or raise "rds-download-db-logfile failed"
- raise "Expected #{basename} to not be empty" if File.size(basename).zero?
- if file != files.last && file[:size] != File.size(basename)
- raise "Expected #{basename} size to be #{file[:size]} but was #{File.size(basename)}"
- end
- end
- end
- end
- ERROR:
- teste2.rb:27:in `block (3 levels) in <main>': rds-download-db-logfile failed (RuntimeError)
- from /usr/local/share/gems/gems/retriable-3.0.2/lib/retriable.rb:53:in `block in retriable'
- from /usr/local/share/gems/gems/retriable-3.0.2/lib/retriable.rb:49:in `times'
- from /usr/local/share/gems/gems/retriable-3.0.2/lib/retriable.rb:49:in `retriable'
- from teste2.rb:26:in `block (2 levels) in <main>'
- from teste2.rb:17:in `tap'
- from teste2.rb:17:in `block in <main>'
- from teste2.rb:16:in `map'
- from teste2.rb:16:in `<main>'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement