diff --git a/script/donmai/backup_db b/script/donmai/backup_db new file mode 100644 index 000000000..e132328ce --- /dev/null +++ b/script/donmai/backup_db @@ -0,0 +1,3 @@ +#!/bin/bash + +PGOPTIONS="-c statement_timeout=0" pg_dump -Fc -hdbserver -f /var/www/danbooru2/shared/backup/db-`date +"%Y-%m-%d-%H-%M"`.dump danbooru2 diff --git a/script/donmai/backup_db_to_s3 b/script/donmai/backup_db_to_s3 new file mode 100644 index 000000000..a9f2cb60c --- /dev/null +++ b/script/donmai/backup_db_to_s3 @@ -0,0 +1,38 @@ +#!/usr/bin/env ruby + +require 'rubygems' +require 'aws/s3' + +MAX_BACKUPS = 30 + +home = File.expand_path("~") + +if !File.exists?("#{home}/.s3/access_key") + STDERR.puts "Access key not found" + exit 1 +end + +if !File.exists?("#{home}/.s3/secret_access_key") + STDERR.puts "Secret access key not found" + exit 1 +end + +access_key = open("#{home}/.s3/access_key").read.strip +secret_access_key = open("#{home}/.s3/secret_access_key").read.strip + +AWS::S3::Base.establish_connection!(:access_key_id => access_key, :secret_access_key => secret_access_key) + +current_backups = AWS::S3::Bucket.find("danbooru-backup").objects.map {|x| x.key}.select {|x| x =~ /^db-/}.sort.reverse + +if current_backups.size > MAX_BACKUPS + current_backups[MAX_BACKUPS..-1].each do |old_backup| + AWS::S3::S3Object.delete(old_backup, "danbooru-backup") + puts "Deleted old backup #{old_backup}" + end +end + +backup = Dir["/var/www/danbooru2/shared/backup/db-*.dump"].sort.last +data = File.open(backup, "rb") +filename = data.mtime.strftime("db-%Y-%m-%d-%H-%M") +AWS::S3::S3Object.store(filename, data, "danbooru-backup", :access => :private) +puts "Uploaded #{backup} as #{filename}" diff --git a/script/donmai/daily b/script/donmai/daily new file mode 100644 index 000000000..d82ee6ab4 --- /dev/null +++ b/script/donmai/daily @@ -0,0 +1,7 @@ +#!/bin/bash + +export RAILS_ENV=production +cd "$(dirname $0)/../../" +script/donmai/backup_db +script/donmai/backup_db_to_s3 +script/donmai/prune_backup_dbs diff --git a/script/donmai/downbooru b/script/donmai/downbooru new file mode 100644 index 000000000..82e9ab997 --- /dev/null +++ b/script/donmai/downbooru @@ -0,0 +1,3 @@ +#!/bin/bash + +mv public/maintenance2.html public/maintenance.html diff --git a/script/donmai/prune_backup_dbs b/script/donmai/prune_backup_dbs new file mode 100644 index 000000000..996f89361 --- /dev/null +++ b/script/donmai/prune_backup_dbs @@ -0,0 +1,3 @@ +#!/bin/bash + +find /var/www/danbooru2/shared/backup -name 'db-*.dump' -mtime +30 -exec /bin/rm -f {} \; diff --git a/script/donmai/upbooru b/script/donmai/upbooru new file mode 100644 index 000000000..069a47ba0 --- /dev/null +++ b/script/donmai/upbooru @@ -0,0 +1,3 @@ +#!/bin/bash + +mv public/maintenance.html public/maintenance2.html