From 532e63e0389ecef0e5cbad2ba4e86a4c64d00741 Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Mon, 9 Feb 2026 10:27:20 +0000 Subject: [PATCH] allows multiple domain names using second arg --- README.md | 10 +++++++++- dyndns.sh | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8296334..b61cb43 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,8 @@ Write this to `DIGITALOCEAN_TOKEN`. The script should now run. Try it out: ```sh -./dyndns.sh +./dyndns.sh 4 # for IPv$ +./dyndns.sh 6 # for IPv$ ``` Go to the control panel in DigitalOcean for your domain, and check the A and @@ -40,3 +41,10 @@ Wait one minute, and check the logs. If you want to see that it works, delete the REPEAT_CHECK_A and REPEAT_CHECK_AAAA files and wait for the script to run again. You may also want to have an MTA set up, as cron will try to send any unhandled output to your inbox. + +If you want to use this script for more than one domain, you can supply a domain +name as a second argument. For example: + +```sh +./dyndns.sh 4 example.com +``` diff --git a/dyndns.sh b/dyndns.sh index 005264b..4b7d1ca 100755 --- a/dyndns.sh +++ b/dyndns.sh @@ -7,7 +7,7 @@ ip_version="$1" if [ -z "${ip_version:-}" ] || ([ "$ip_version" != 4 ] && [ "$ip_version" != 6 ]); then echo "Error: no valid IP version provided" >&2 - echo "Usage: dyndns.bash <4|6>" >&2 + echo "Usage: dyndns.bash <4|6> [domain]" >&2 exit 1 fi @@ -26,7 +26,7 @@ REPEAT_CHECK_A=$REPEAT_CHECK_DIR/REPEAT_CHECK_A REPEAT_CHECK_AAAA=$REPEAT_CHECK_DIR/REPEAT_CHECK_AAAA REPEAT_CHECK="$([ $ip_version = 4 ] && echo $REPEAT_CHECK_A || echo $REPEAT_CHECK_AAAA)" -DIGITALOCEAN_DOMAIN=`cat $SCRIPT_DIR/DIGITALOCEAN_DOMAIN` +DIGITALOCEAN_DOMAIN=${2:-`cat $SCRIPT_DIR/DIGITALOCEAN_DOMAIN`} DIGITALOCEAN_TOKEN=`cat $SCRIPT_DIR/DIGITALOCEAN_TOKEN` get_a_record_ids() {