From: Christian Weiske Date: Wed, 21 Aug 2013 19:18:46 +0000 (+0200) Subject: TXT record generation X-Git-Url: https://git.cweiske.de/ssh-dyndns.git/commitdiff_plain/4b4da83972c2931a4bc971bdbe30e7eb2401713b TXT record generation --- diff --git a/README.rst b/README.rst index 34341e6..8c84931 100644 --- a/README.rst +++ b/README.rst @@ -10,6 +10,7 @@ SSH provides secure, password-less key-based authentication. Upon login, the remote IP is used to create/update a tinydns file with the DNS record for a hostname given by the SSH client. +In addition to the IP record, a TXT record with the update time will be added. tinydns is part of the dbjdns/dbndns package. @@ -116,6 +117,26 @@ compile the ``data.cdb`` file. tinydns will automatically pick up the change. +Test +==== +You can test it locally: + +1. Create config file:: + + $ cp ssh-dyndns.sh.config-dist ~/.config/ssh-dyndns.sh + +2. Create dummy makefile:: + + $ touch /tmp/Makefile + +3. Run it:: + + $ SSH_CLIENT=192.168.1.4 SSH_CONNECTION=1 ./ssh-dyndns foo home.example.org + +4. See generated file:: + + $ cat /tmp/data-dyndns-home.example.org + ==== Bugs ==== diff --git a/ssh-dyndns b/ssh-dyndns index 67a13d9..cbbb1cd 100755 --- a/ssh-dyndns +++ b/ssh-dyndns @@ -76,7 +76,7 @@ djbdnsline="=${domain}:${remoteip}:${timeout}" update=1 if [ -f "$datafile" ]; then - currentdata=`cat "$datafile"` + currentdata=`head -n1 "$datafile"|tr -d '\n'` if [ "$currentdata" = "$djbdnsline" ]; then #no need to update update=0 @@ -88,6 +88,11 @@ fi echo $djbdnsline > $datafile +#TXT record with last update +date=`date --rfc-3339=seconds|tr : .|tr -d '\n'` +djbdnsTxtLine="'${domain}:Last update ${date}.:${timeout}" +echo $djbdnsTxtLine >> $datafile + #compile dns data cd "$data_dir" sudo make