Advertisement
Guest User

Untitled

a guest
Feb 8th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. require 'date'
  2. require 'aws/s3'
  3.  
  4. class Settings
  5. attr_accessor :username, :password, :database, :mysql_location, :access_key, :secret_key, :bucket_name
  6. end
  7.  
  8. user_settings = Settings.new
  9. user_settings.username = DATABASE_USERNAME
  10. user_settings.password = DATABASE_PASSWORD
  11. user_settings.database = DATABASE_NAME
  12. user_settings.mysql_location = LOCATION_OF_mysqldump_COMMAND
  13.  
  14. user_settings.access_key = AWS_S3_ACCESS_KEY
  15. user_settings.secret_key = AWS_S3_SECRET_KEY
  16. user_settings.bucket_name = S3_BUCKET_NAME
  17.  
  18. def mysql_to_s3(settings)
  19.  
  20. puts "Starting mysql_to_s3 for username: \"" + settings.username + "\"..."
  21.  
  22. dumpfile = DateTime.now.to_s + ".sql"
  23.  
  24. command_string = settings.mysql_location + " -u " + settings.username + " -p" + settings.password + " --databases " + settings.database + " > " + dumpfile
  25. status = system command_string
  26. if status
  27. puts "Database backed up."
  28. else
  29. puts "Error in backing up database."
  30. return
  31. end
  32.  
  33. AWS::S3::Base.establish_connection!(
  34. :access_key_id => settings.access_key,
  35. :secret_access_key => settings.secret_key
  36. )
  37.  
  38. begin
  39. puts "Looking for bucket..."
  40. bucket = AWS::S3::Bucket.find(settings.bucket_name)
  41. puts "Bucket found."
  42. rescue Exception => e
  43. puts e.message
  44. puts "Error: Bucket " + settings.bucket_name + " might not be present in your Amazon S3 account."
  45. puts "Deleting backup file from local disk..."
  46. File.delete(dumpfile)
  47. return
  48. end
  49.  
  50. begin
  51. puts "Sending data to Amazon S3..."
  52. response = AWS::S3::S3Object.store(dumpfile, open(dumpfile), settings.bucket_name)
  53. rescue Exception => e
  54. puts "Error: " + e.message
  55. puts "Deleting backup file from local disk..."
  56. File.delete(dumpfile)
  57. return
  58. end
  59. puts "Backup Done."
  60. puts ""
  61.  
  62. end
  63.  
  64.  
  65. mysql_to_s3(user_settings)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement