From 8524311c518197270a95afdd843d526165aca4d5 Mon Sep 17 00:00:00 2001 From: zhitomirskiyi Date: Fri, 19 Nov 2010 16:46:04 -0800 Subject: [PATCH] added the photo rake task --- .../common/files/default/backupcron.txt | 3 ++- lib/tasks/backup.rake | 27 +++++++++++++++++-- script/backup | 4 --- 3 files changed, 27 insertions(+), 7 deletions(-) delete mode 100755 script/backup diff --git a/chef/cookbooks/common/files/default/backupcron.txt b/chef/cookbooks/common/files/default/backupcron.txt index 2d5b2c865..63c61dbb7 100644 --- a/chef/cookbooks/common/files/default/backupcron.txt +++ b/chef/cookbooks/common/files/default/backupcron.txt @@ -1 +1,2 @@ -42 * * * * exec /usr/local/app/diaspora/script/backup 2>> /tmp/backup/errors.log +42 * * * * cd /usr/local/app/diaspora && exec /usr/local/bin/ruby /usr/local/bin/bundle exec rake backup:mongo 2>> /usr/local/app/diaspora/log/rake_mongo.log +42 * * * * cd /usr/local/app/diaspora && exec /usr/local/bin/ruby /usr/local/bin/bundle exec rake backup:photos 2>> /usr/local/app/diaspora/log/rake_photos.log diff --git a/lib/tasks/backup.rake b/lib/tasks/backup.rake index 967f00947..fcac2e5c6 100644 --- a/lib/tasks/backup.rake +++ b/lib/tasks/backup.rake @@ -1,8 +1,9 @@ namespace :backup do desc "Backup Mongo" + require File.join(Rails.root, 'config', 'initializers', '_load_app_config.rb') + require 'cloudfiles' + task :mongo do - require File.join(Rails.root, 'config', 'initializers', '_load_app_config.rb') - require 'cloudfiles' if APP_CONFIG[:cloudfiles_username] && APP_CONFIG[:cloudfiles_api_key] puts "Loginning into Cloud Files" @@ -27,4 +28,26 @@ namespace :backup do puts "Cloudfiles username and api key needed" end end + + task :photos do + if APP_CONFIG[:cloudfiles_username] && APP_CONFIG[:cloudfiles_api_key] + puts "Loginning into Cloud Files" + cf = CloudFiles::Connection.new(:username => APP_CONFIG[:cloudfiles_username], :api_key => APP_CONFIG[:cloudfiles_api_key]) + photo_container = cf.container("Photo Backup") + + puts "Taring Photos" + tar_name = "photos_#{Time.now.to_i}.tar" + `tar cfP /tmp/backup/#{tar_name} /usr/local/app/diaspora/public/uploads/images/` + + file = photo_container.create_object(tar_name) + puts "uploading" + success = file.write File.open("/tmp/backup/" + tar_name) + puts "Successfully uploaded?: #{success}" + if success + `rm /tmp/backup/#{tar_name}` + end + else + puts "Cloudfiles username and api key needed" + end + end end diff --git a/script/backup b/script/backup deleted file mode 100755 index 4e6063cdc..000000000 --- a/script/backup +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -cd /usr/local/app/diaspora/ -exec /usr/local/bin/ruby /usr/local/bin/bundle exec rake backup:mongo 2>> /tmp/backup/rake.log