Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- set :dbuser "user"
- set :dbhost "host"
- set :database "db"
- namespace :db do
- desc "Get the database password from user"
- task :get_password do
- set(:dbpass) do
- Capistrano::CLI.ui.ask "Enter mysql password: "
- end
- end
- task :backup_name, :only => { :primary => true } do
- now = Time.now
- run "mkdir -p #{shared_path}/db_backups"
- backup_time = [now.year,now.month,now.day,now.hour,now.min,now.sec].join('-')
- set :backup_file, "#{shared_path}/db_backups/#{database}-snapshot-#{backup_time}.sql"
- end
- desc "Dump database to backup file"
- task :dump, :roles => :db, :only => {:primary => true} do
- backup_name
- run "mysqldump --add-drop-table -u #{dbuser} -h #{dbhost} -p#{dbpass} #{database} | bzip2 -c > #{backup_file}.bz2"
- end
- end
- filename = 'wp-config.php'
- def get_db_info(file)
- username = nil
- password = nil
- db_name = nil
- file.each { |line|
- if line =~ /'DB_(USER|PASSWORD|NAME)', '([[:alnum:]]*)'/
- if $1 == "USER"
- username = $2
- elsif $1 == "PASSWORD"
- password = $2
- elsif $1 == "NAME"
- db_name = $2
- end
- end
- }
- if username.nil? || password.nil? || db_name.nil?
- puts "[backup_db][bad] couldn't get all needed info"
- exit
- end
- return username, password, db_name
- end
- begin
- config_file = open("#{filename}")
- rescue Errno::ENOENT
- puts "[backup_db][bad] File '#{filename}' didn't exist"
- exit
- else
- puts "[backup_db][good] File '#{filename}' existed"
- end
- username, password, db_name = get_db_info(config_file)
- sql_dump_info = `mysqldump --user=#{username} --password=#{password} #{dbname}`
- puts sql_dump_info
Add Comment
Please, Sign In to add comment