用 Backup gem 實現簡單備份

簡單記錄一下 backup gem 的運作,首先安裝gem

gem install backup

然後產生設定檔及backup model

backup generate:config && backup generate:model --trigger "備份task名稱"  --storages="s3" --compressors="gzip"

接著就是設定備份

Backup::Model.new(:test_backup, 'Description for test_backup') do
  split_into_chunks_of 500

  archive :product_photos do |archive|
    archive.add '要備份的目錄 ex. /home/apps/forum/public/uploads/'
  end

  store_with S3 do |s3|
    s3.access_key_id     = "access_key"
    s3.secret_access_key = "secret_key"
    s3.region            = "區域 ex. ap-northeast-1"
    s3.bucket            = "s3 bucket 名稱"
    s3.path              = "Bucket裡的路徑 ex. /test_bkup"
    s3.keep              = 5
  end

  compress_with Gzip

  notify_by Mail do |mail|
    mail.on_success           = true
    mail.on_failure           = true
    mail.from                 = 'techadmin@buyble.com.tw'
    mail.to                   = 'unayung.chen@buyble.com.tw'
    mail.address              = 'smtp.gmail.com'
    mail.port                 = 587
    mail.domain               = 'buyble.com.tw'
    mail.user_name            = 'techadmin@buyble.com.tw'
    mail.password             = 'password_here'
    mail.authentication       = 'plain'
    mail.enable_starttls_auto = true
  end
end

這樣就設定完成,非常直覺的設定檔

最後只要下簡單的指令就可以進行backup

backup perform -t 備份task名稱

超ez,可喜可賀!!

Comments

comments powered by Disqus