Advertisement
Guest User

Untitled

a guest
May 12th, 2017
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. #!/usr/bin/ruby
  2.  
  3. require 'aws-sdk'
  4. require 'shellwords'
  5. require 'facter'
  6. require 'retriable'
  7.  
  8. ENV['DB_INSTANCE_IDENTIFIER'] or raise 'DB_INSTANCE_IDENTIFIER is required'
  9.  
  10. rds = Aws::RDS::Client.new
  11. files = rds.describe_db_log_files(db_instance_identifier: ENV['DB_INSTANCE_IDENTIFIER'])
  12. files = files.to_h[:describe_db_log_files]
  13.  
  14. log_file_count = ENV['LOG_FILE_COUNT'] ? ENV['LOG_FILE_COUNT'].to_i : 5
  15.  
  16. downloaded_files = files.last(log_file_count).map do |file|
  17. File.basename(file[:log_file_name]).tap do |basename|
  18. command = ["/usr/local/RDSCli-1.19.004/bin/rds-download-db-logfile",
  19. "--db-instance-identifier", ENV['DB_INSTANCE_IDENTIFIER'],
  20. "-I", ENV['AWS_ACCESS_KEY_ID'],
  21. "-S", ENV['AWS_SECRET_ACCESS_KEY'],
  22. "--region", ENV['AWS_DEFAULT_REGION'],
  23. "--log-file-name", file[:log_file_name]]
  24.  
  25. puts file[:log_file_name]
  26. Retriable.retriable(tries: 8) do
  27. system("#{Shellwords.shelljoin command} >#{basename}") or raise "rds-download-db-logfile failed"
  28. raise "Expected #{basename} to not be empty" if File.size(basename).zero?
  29.  
  30. if file != files.last && file[:size] != File.size(basename)
  31. raise "Expected #{basename} size to be #{file[:size]} but was #{File.size(basename)}"
  32. end
  33. end
  34. end
  35. end
  36.  
  37.  
  38. ERROR:
  39. teste2.rb:27:in `block (3 levels) in <main>': rds-download-db-logfile failed (RuntimeError)
  40. from /usr/local/share/gems/gems/retriable-3.0.2/lib/retriable.rb:53:in `block in retriable'
  41. from /usr/local/share/gems/gems/retriable-3.0.2/lib/retriable.rb:49:in `times'
  42. from /usr/local/share/gems/gems/retriable-3.0.2/lib/retriable.rb:49:in `retriable'
  43. from teste2.rb:26:in `block (2 levels) in <main>'
  44. from teste2.rb:17:in `tap'
  45. from teste2.rb:17:in `block in <main>'
  46. from teste2.rb:16:in `map'
  47. from teste2.rb:16:in `<main>'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement