Skip to content

Instantly share code, notes, and snippets.

@akitaonrails
Created July 24, 2012 01:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save akitaonrails/3167389 to your computer and use it in GitHub Desktop.
Save akitaonrails/3167389 to your computer and use it in GitHub Desktop.
Very simple Zerigo backup script. Original from http://www.programblings.com/2012/07/23/do-you-back-up-your-dns-records/
#!/usr/bin/env ruby
require 'rubygems'
require 'nokogiri'
dir = File.join( ENV['DNS_BACKUP_DIR'] || '.', 'zerigo' )
user = ENV['ZERIGO_USER']
key = ENV['ZERIGO_KEY']
raise "set ZERIGO_USER" unless user
raise "set ZERIGO_KEY" unless key
raise "set DNS_BACKUP_DIR" unless key
`mkdir -p #{dir}`
list = `curl --user #{user}:#{key} http://ns.zerigo.com/api/1.1/zones.xml`
File.open( File.join(dir, '_list.xml'), 'w') {|f| f.write list}
Nokogiri::XML(list).css('zones zone').each do |node|
id = node.css('id').text
domain = node.css('domain').text
output = File.join(dir, "#{domain}.xml")
puts "#{domain} (#{id}) => #{output}"
`curl --user #{user}:#{key} -o "#{output}" http://ns.zerigo.com/api/1.1/zones/#{id}/hosts.xml`
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment