How to use perl to do a mass dns update


Enter Your Query:
Use '%' for wildcards and quotes for "exact phrases"


Top Level » DNS

How to use perl to do a mass dns updateLast Modified: Dec 11, 2012, 4:47 pm
If you need to change all of your dns servers through DirectAdmin one by one, it's easier to use perl to do a regex (regular expression) to do the replace for us with one command.  To do this, you can run the following.  (replace the bold items with your own)

cd /usr/local/directadmin/data/users
perl -pi -e 's/ns1.old.com/ns1.new.com/' */user.conf
perl -pi -e 's/ns2.old.com/ns2.new.com/' */user.conf
perl -pi -e 's/ns1.old.com/ns1.new.com/' */reseller.conf
perl -pi -e 's/ns2.old.com/ns2.new.com/' */reseller.conf

cd /var/named   #(or whatever the path to your *.db files is, eg: /etc/bind, /etc/named)
perl -pi -e 's/ns1.old.com/ns1.new.com/' *.db
perl -pi -e 's/ns2.old.com/ns2.new.com/' *.db

once your changes are done, it's a good idea to rewrite all .db files to update your serials, and also to trigger any syncs to remote dns systems:

echo "action=rewrite&value=named" >> /usr/local/directadmin/data/task.queue

2003 JBMC Software, Suite 173  3-11 Bellerose Drive, St Albert, AB  T8N 1P7  Canada.  Mon-Fri 9AM-5PM MST