public
Description: Code examples from my blog
Homepage: http://pauldowman.com
Clone URL: git://github.com/pauldowman/blog_code_examples.git
blog_code_examples / mysql_s3_backup / full_backup.rb
100755 20 lines (14 sloc) 0.536 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env ruby
 
require "common"
 
begin
  FileUtils.mkdir_p @temp_dir
 
  # assumes the bucket's empty
  dump_file = "#{@temp_dir}/dump.sql.gz"
  
  cmd = "mysqldump --quick --single-transaction --create-options -u#{@mysql_user} --flush-logs --master-data=2 --delete-master-logs"
  cmd += " -p'#{@mysql_password}'" unless @mysql_password.nil?
  cmd += " #{@mysql_database} | gzip > #{dump_file}"
  run(cmd)
  
  AWS::S3::S3Object.store(File.basename(dump_file), open(dump_file), @s3_bucket)
ensure
  FileUtils.rm_rf(@temp_dir)
end