2012-05-24 09:01:00 +00:00
|
|
|
class BackupServer
|
|
|
|
@queue = :high
|
|
|
|
|
|
|
|
def self.perform()
|
2012-06-04 08:51:29 +00:00
|
|
|
dbhost = Mongoid.config.database.connection.primary.join ':'
|
|
|
|
dbname = Mongoid.config.database.name
|
2013-04-24 11:21:11 +00:00
|
|
|
archive_db_list_path = OrbitSystemPreference::ArchiveDbListPath
|
2012-06-04 08:51:29 +00:00
|
|
|
dbdirectory = "#{Rails.root}/tmp/#{dbname}-"+Time.now.strftime("%Y-%m-%d-%H-%M")
|
2012-06-20 06:50:51 +00:00
|
|
|
%x[mongodump -h #{dbhost} -d #{dbname} -o #{dbdirectory} ]
|
|
|
|
|
2013-07-05 04:06:58 +00:00
|
|
|
Dir.foreach('tmp') do |item|
|
|
|
|
date_str = item.to_s.gsub("#{dbname}-",'')
|
|
|
|
next if not date_str.match(/\d{4}-\d{2}-\d{2}-\d{2}-\d{2}/)
|
|
|
|
if Date.parse(date_str).to_time < Site.first.backup_keep_for_days.days.ago
|
|
|
|
OrbitLogger.info "Deleting #{date_str}"
|
|
|
|
%x[rm -rf tmp/#{item}]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
%x[rm -f #{archive_db_list_path}]
|
|
|
|
%x[cd tmp ; ls -l |grep #{dbname} | awk '{print $8}'|xargs du -h --block-size=1M --max-depth=0 |sort -h >> #{archive_db_list_path}]
|
2013-05-14 02:29:11 +00:00
|
|
|
OrbitLogger.info "DB backup done Path:#{dbdirectory}"
|
2012-05-24 09:01:00 +00:00
|
|
|
end
|
|
|
|
end
|