menuimage

Description

Exit_Codes

Conffile

Options

Dependency

License

Changelog

Download

Donation

My_Other_Sites

My_Programs

Comments

mythic-dns-sync v1.8 [03 Apr 2018] by Dominic

Description

Compare local machine's current external ip address with the DNS records pointing to it on ns1.mythic-beasts.com, then use curl to fix latter if different. Also compare external reverse DNS with internal FQDN and update internal FQDN (in /etc/hosts) if different, and if the previous internal FQDN is also found as myhostname in Postfix's main.cf, update it there too.

Requires ability to login details at mythic-beasts.com and a DNS password set up there. Makes use of their API - see https://www.mythic-beasts.com/support/api/primary.

Intended for running as regular cron job on a machine with dynamic external ip whose DNS records - held at ns1.mythic-beasts.com - and local FQDN need to be kept accurate - such as a (Postfix) mail server.

For a DNS name which resolves to more than one ip address (one of which is the local machine's ip), ensure that this is not the first entry in the conffile - mythic-dns-sync.sh will attempt to identify the correct entry to alter based on a modified IP found in the preceding entry.

Exit Codes

0 - no changes needed, all is ok
1 - there was a problem and/or failed to make all required changes
2 - made some changes successfully

Conffile

mythic-dns-sync.sh requires a conf file (see options) which must contain 3 or 4 definitions:
DOMAIN="[put your DNS domain here]"
SUBDOMAINS="[put one or more subdomain names here, space-separated]"
PASS="[put your DNS password here]"
TTL="[put your TTL value here]" (this entry is optional - default value is 3600)

For example -

DOMAIN="mydomain.com"
SUBDOMAINS="vps32 mail1"
PASS="ajfdfjsdk"

Options

-c [conffile] - use the named conffile instead of the default (which is mythic-dns-sync-[hostname].conf in the same directory as mythic-dns-sync.sh)
-h - show this help and exit
-l - show changelog and exit
-q - be quiet unless ip mismatch is found or there is a problem
-t - test mode (force running the code to try to fix changes, but don't really make the changes)

Dependency

curl

License

Copyright © 2018 Dominic Raferd. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Changelog

1.8 [03 Apr 2018]: bugfix - exit code 2 was being given if unable to obtain external ip - changed to 1
1.7 [29 Jan 2018]: text (to stderr) in quiet mode if an ip is changed on ns1.mythic-beasts.com
1.6 [18 Jan 2018]: minor exit code fix
1.5 [14 Jan 2018]: added exit code 2, also update main.cf myhostname
1.4 [12 Jan 2018]: text updates
1.3 [07 Jan 2018]: wait for Mythic Beasts DNS to update
1.2 [01 Jan 2018]: minor text changes
1.1 [29 Dec 2017]: minor changes, trying to bugfix
1.0 [19 Sep 2017]: allow checking/modification where a DNS name resolves to more than one ip (including this one)
0.9 [18 Aug 2017]: adapted from 123-dns-sync.sh to work for Mythic Beasts, allow @ as subdomain
0.8 [06 Jan 2017]: minor tweak to text output if there is a problem
0.7 [04 Dec 2016]: make generic, rename from r...-c......-ip-updated.sh to 123-dns-sync.sh
0.6 [28 Nov 2016]: add test for internal fqdn vs reversedns, rename from r...-c......ip-notify.sh to r...-c......-ip-updated.sh
0.5 [31 Oct 2016]: add test for valid ip
0.4 [16 Oct 2016]: retrieve current ip from opendns.com by default, fall back to log entry by noip2 script
0.3 [24 May 2016]: retrieve ips from authoritative nameservers not cache
0.2 [20 May 2016]: add use of $FIXERPROG and option -t
0.1 [14 Apr 2016]: first version

Download mythic-dns-sync.sh

Donation

I have provided this software free gratis and for nothing. If you would like to thank me with a contribution, please let me know and I will send you a link. Thank you!

My Other Sites

My Programs

Here is a selection of some (other) programs I have written, most of which run from the command line (CLI), are freely available and can be obtained by clicking on the links. Dependencies are shown and while in most cases written for a conventional Linux server, they should run even on a Raspberry Pi, and many can run under Windows using Cygwin. Email me if you have problems or questions, or if you think I could help with a programming requirement.

Backup Utilities

Debian/Ubuntu kernel and LVM Utilities

Dellmont / Three / Giffgaff / Vodafone - VoIP and Mobile Phone Account Utilities

Miscellaneous Programs

Comments

No comments yet
*Name:
Email:
Hide my email
*Text:
 
Powered by Scriptsmill Comments Script