2.8 KiB
🔃 dynb
dynb - dynamic DNS update script, written in bash
IPv4 (A) and IPv6 (AAAA) record updates are supported.
✨ Update Methods
The following update methods are currently implemented:
APIs
- INWX.com JSON-RPC-API
Limitations:- minimum TTL is 300 (5 minutes)
DynDNS2
- INWX.com
Limitations:- minimum TTL is 60 (1 minute)
- one DynDNS account with one hostname is for free
- dynv6.com
- note: assign your token to the password setting
📦 Requirements
curl- The minimum requirement for running DynDNS2 operations
essential for APIs:
jq- Command-line JSON processor
optional requirement:
getoptfor CLI parameter handling from util-linux
🚀 Installation
Download the latest release
or simply clone this repo
git clone https://github.com/EV21/dynb.git
If you want to add the script to you PATH, run 👇
bash dynb.sh --link
This convenience function only works if util-linux is installed on your system.
⚙ Configuration
You can use a config in form of an .env file.
Or if your system meets the relevant requirements you can use CLI parameters.
Create .env in the app root directory or at ~/.local/share/dynb/.env.
_dyn_domain=dyndns.example.com
## service provider could be inwx
_serviceProvider=inwx
## update method options: domrobot, dyndns
_update_method=domrobot
## ip mode could be either: 4, 6 or dual for dualstack
_ip_mode=dual
## If you are using the DomRobot RPC-API enter your credentials for the web interface login here
## If you are using the DynDNS2 protocol enter your credentials here
_username=
_password=
🏃 Run
If you have a config file just run 👇
dynb
Alternatively you can use parameters if your system meets the relevant requirements. This example shows the long form parameter, there are also short ones.
Call the help function 👇
dynb --help
dynb --ip-mode dualstack --update-method domrobot --domain dyndns.example.com --username user42 --password SuperSecretPassword
dynb --ip-mode dualstack --update-method dyndns --provider inwx --domain dyndns.example.com --username user42 --password SuperSecretPassword
⏰ Cron
To automatically call the script you can use cron.
execute 👇
crontab -e
then enter 👇 to run dynb every five minutes.
*/5 * * * * $HOME/.local/bin/dynb >> $HOME/.local/share/dynb/dynb-cron.log
Note, cron typically does not use the users PATH variable.