Dynamic IP? No Problem! Keep your Domains in check!
Quickly update DNS records for one or many domains names to the current external public IP address.
Perfect for any HomeLab, SelfHosted web server, RaspberryPi, NGINX reverse proxy servers and whatever else you want to host.
Edit UpdateAll.sh
or UpdateSingle.sh
and fill in the required info:
# CloudFlare Account Details
auth_email="EMAILADDRESS"
auth_key="AUTHKEY"
UpdateAll.sh
- Multiple domains can be bulk updated, define them here.
zone_names=("DOMAINNAME.COM" "DOMAINNAME2.COM" "DOMAINNAME3.COM")
UpdateSingle.sh
- A single domain you want to manage.
zone_name="DOMAINNAME.COM"
Nice work, Let's do it 👍
Perhaps you have a dozen SelfHosted domains and sub domains, Update All is for you! All records attached to the domain will be updated to the current external IP address. It couldn't be easier!
./UpdateAll.sh
[Tuesday 10 July 21:44:47 ACST 2018] - Checking domain.com
[Tuesday 10 July 21:44:50 ACST 2018] - No Update Required: domain.com is 1.1.1.1
[Tuesday 10 July 21:44:51 ACST 2018] - No Update Required: taco.domain.com is 1.1.1.1
[Tuesday 10 July 21:44:53 ACST 2018] - No Update Required: www.domain.com is 1.1.1.1
[Tuesday 10 July 21:44:54 ACST 2018] - Checking domain2.com
[Tuesday 10 July 21:44:55 ACST 2018] - No Update Required: domain2.com is 1.1.1.1
[Tuesday 10 July 21:44:56 ACST 2018] - No Update Required: hotdog.domain2.com is 1.1.1.1
[Tuesday 10 July 21:44:56 ACST 2018] - No Update Required: www.domain2.com is 1.1.1.1
[Tuesday 10 July 21:44:57 ACST 2018] - All Done!
With your zone_name
defined as domain.com, Update the IP for taco.domain.com to the current external IP address.
./UpdateSingle.sh taco
Review the output 🐄
Update Required
./UpdateSingle.sh taco
[Tuesday 10 July 21:31:07 ACST 2018] - Checking taco.domain.com
[Tuesday 10 July 21:31:15 ACST 2018] - Update Required: taco.domain.com points to 2.2.2.2
[Tuesday 10 July 21:31:15 ACST 2018] - Updating taco.domain.com to 1.1.1.1
[Tuesday 10 July 21:31:15 ACST 2018] - All Done!
No Update Required
./UpdateSingle.sh taco
[Tuesday 10 July 21:37:23 ACST 2018] - Checking taco.domain.com
[Tuesday 10 July 21:37:25 ACST 2018] - No Update Required: taco.domain.com is 1.1.1.1
# Check and update domain.com and domain2.com each hour
0 * * * * /home/sushi/UpdateAll.sh
If the wheels fall off, don't forget to make the script executable!
chmod +x UpdateAll.sh
Hmmm, Amazon has closed it's doors? Update the IP check from https://checkip.amazonaws.com to an alternative location.
You are unfortunately missing a few key features from grep
!
Update grep
with Homebrew 😇
brew install grep --with-default-names
grep --version
grep (GNU grep) 3.1
Packaged by Homebrew
Give it another whirl 👌