Press "Enter" to skip to content

QuickDNS – Change DNS TTLs with AppleScript

A client of ours is moving his servers to a new colo soon and like us, uses QuickDNS from Men and Mice to manage his BIND installations. He needed an AppleScript that would go through all his zones and reduce all the TTL values so that when he moved his servers, the transition would happen as smoothly as possible. So I whipped up this AppleScript:

set setDirection to "low"
--set setDirection to "normal"

tell application "QuickDNS Manager"
  repeat with theZone in zones
    set curZoneName to name of theZone
    set theDoc to (open theZone)
    tell theDoc
      if ("low" is setDirection) then
        set default time to live to 7200
        try
          set expire of first SOA record to "1400"
        end try
        try
          set refresh of first SOA record to "7200"
        end try
        try
          set negative caching of first SOA record to "7200"
        end try
        try
          set retry of first SOA record to "3600"
        end try
        try
          set time to live of first SOA record to "7200"
        end try
      end if
      if ("normal" is setDirection) then
        set default time to live to 7200
        try
          set expire of first SOA record to "604800"
        end try
        try
          set refresh of first SOA record to "28800"
        end try
        try
          set negative caching of first SOA record to "43200"
        end try
        try
          set retry of first SOA record to "7200"
        end try
        try
          set time to live of first SOA record to "86400"
        end try
      end if

      save with comment ""
    end tell

  end repeat
end tell
Leave a Reply