Guest User

Untitled

a guest
Mar 5th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. mysql_username = "backup"
  2. mysql_password = ""
  3. databases = [ 'db1', 'sb2' ]
  4. temp_directory = "/mnt/storage/backups"
  5. s3_access_key_id = 'xxxx'
  6. s3_secret_access_key = 'xxxx'
  7. s3_bucket_name = 'database-bucket'
  8.  
  9. require 'rubygems'
  10. require 'aws/s3'
  11.  
  12. databases.each do |db|
  13. now = Time.now.strftime("%Y-%m-%d-%H-%M-%S")
  14. filename = "#{db}-#{now}.sql"
  15. puts "Dumping #{db} to SQL file"
  16. `mysqldump --user=#{mysql_username} --password=#{mysql_password} #{db} > #{temp_directory}/#{db}-#{now}.sql`
  17. puts "...done\n\n"
  18. puts "Gzipping #{db}\n"
  19. `gzip #{temp_directory}/#{db}-#{now}.sql`
  20. puts "...done\n\n"
  21. filename = filename + ".gz"
  22.  
  23. puts "Sending #{filename} to Amazon S3\n"
  24. AWS::S3::Base.establish_connection!(
  25. :access_key_id => s3_access_key_id,
  26. :secret_access_key => s3_secret_access_key
  27. )
  28.  
  29. AWS::S3::S3Object.store(
  30. filename,
  31. File.open(temp_directory + "/" + filename),
  32. s3_bucket_name,
  33. :content_type => 'application/x-gzip',
  34. :access => :private
  35. )
  36.  
  37. if AWS::S3::Service.response.success?
  38. # Remove the file on the local filesystem
  39. FileUtils.rm temp_directory + "/" + filename
  40. puts "...done\n\n"
  41. else
  42. puts "There was a problem uploading " + full_filename
  43. end
  44. end
Add Comment
Please, Sign In to add comment