Guest User

Untitled

a guest
Mar 2nd, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2.  
  3. require "rubygems"
  4. require "fileutils"
  5. require 'aws/s3'
  6.  
  7. @database_backup_list = [] #an array of strings containing the names of the databases to be backed up
  8. @bucket_name = "bucket"
  9. @aws_access_key_id = "your_key_id"
  10. @aws_sectet_access_Key = "your_sectet_access_key"
  11. @mysql_user = "user"
  12. @mysql_password = "password"
  13. @backup_date = Time.now.strftime("%m-%d-%Y")
  14. @local_backup_location = "/home/you_user_dir/sqlbackups/#{@backup_date}"
  15.  
  16. def run(command)
  17. result = system(command)
  18. raise("error, process exited with status #{$?.exitstatus}") unless result
  19. end
  20.  
  21. def find_or_create_bucket(bucket_name)
  22. buckets = AWS::S3::Service.buckets.select { |b| b.name == bucket_name }
  23. if buckets.empty?
  24. AWS::S3::Bucket.create(bucket_name)
  25. return AWS::S3::Bucket.find(bucket_name)
  26. else
  27. return buckets.first
  28. end
  29. end
  30.  
  31. def store_file(store_as, file, bucket)
  32. AWS::S3::S3Object.store(store_as, open(file), bucket)
  33. end
  34.  
  35. AWS::S3::Base.establish_connection!(
  36. :access_key_id => @aws_access_key_id,
  37. :secret_access_key => @aws_secret_access_Key
  38. )
  39.  
  40.  
  41. @sqlbackup_bucket = find_or_create_bucket(BUCKET_NAME)
  42. run("mkdir #{@local_backup_location}")
  43.  
  44. DATABASE_BACKUP_LIST.each do |mysql_database|
  45. dump_file = "#{@local_backup_location}/#{mysql_database}.sql.gz"
  46. cmd = "mysqldump --create-options -u#{@mysql_user} "
  47. cmd += " -p'#{@mysql_password}'" unless @mysql_password.nil?
  48. cmd += " #{mysql_database} | gzip > #{dump_file}"
  49. run cmd
  50.  
  51. store_file "#{@backup_date}-#{mysql_database}", dump_file, @sqlbackup_bucket.name
  52. end
Add Comment
Please, Sign In to add comment