mkdocs-pages/docs/examples/seddnszone.md
2019-02-25 03:10:27 +11:00

1.9 KiB

#Using sed to modify a DNS zone

Take the following DNS zone as an example, say we needed to update the IP address from 110.232.142.185 to 45.65.88.152, you could modify the file using a text editor (see editors)

$TTL 86400
@ IN SOA ns1.benjamyn.love. servers.benjamyn.love. (
	2018043009 ;Serial
	3600 ;Refresh
	1800 ;Retry
	604800 ;Expire
	43200 ;Minimum TTL
)
;Name Server Information
@ IN NS ns1.benjamyn.love.
@ IN NS ns2.benjamyn.love.
;IP address of Name Server
primary IN A 110.232.142.184
;A - Record HostName To Ip Address
memes.sh. IN A 110.232.142.185
www IN A 110.232.142.185
;CNAME record
ftp IN CNAME memes.sh.

In this case we can just use sed -i s/110.232.142.185/45.65.88.152/g filename

The file gets changed to

$TTL 86400
@ IN SOA ns1.benjamyn.love. servers.benjamyn.love. (
	2018043009 ;Serial
	3600 ;Refresh
	1800 ;Retry
	604800 ;Expire
	43200 ;Minimum TTL
)
;Name Server Information
@ IN NS ns1.benjamyn.love.
@ IN NS ns2.benjamyn.love.
;IP address of Name Server
primary IN A 110.232.142.184
;A - Record HostName To Ip Address
memes.sh. IN A 45.65.88.152 <--
www IN A 45.65.88.152 <--
;CNAME record
ftp IN CNAME memes.sh.

You can also use sed to update things like the serial number using some regex (which will need to be incremented for the DNS zone to be properly synced out)

The command will look like sed -i s/.*Serial/" 2019010308 ;Serial"/g filename (The quotes are to escape the ; character) and when run against the DNS zone it will update will look like

$TTL 86400
@ IN SOA ns1.benjamyn.love. servers.benjamyn.love. (
    2019010308 ;Serial <--
	3600 ;Refresh
	1800 ;Retry
	604800 ;Expire
	43200 ;Minimum TTL
)
;Name Server Information
@ IN NS ns1.benjamyn.love.
@ IN NS ns2.benjamyn.love.
;IP address of Name Server
primary IN A 110.232.142.184
;A - Record HostName To Ip Address
memes.sh. IN A 45.65.88.152
www IN A 45.65.88.152
;CNAME record
ftp IN CNAME memes.sh.