summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-02-09 10:27:20 +0000
committerJoe Carstairs <me@joeac.net>2026-02-09 10:27:20 +0000
commit532e63e0389ecef0e5cbad2ba4e86a4c64d00741 (patch)
tree6b8218c89d54da0f3f8f68177b8cd4bd0395d7e0
parent3d2a0602e49d69a402387b965a4458779149ebc3 (diff)
allows multiple domain names using second arg
-rw-r--r--README.md10
-rwxr-xr-xdyndns.sh4
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() {