diff --git a/tools/duckdns/.gitignore b/tools/duckdns/.gitignore index 4c49bd7..2334d82 100644 --- a/tools/duckdns/.gitignore +++ b/tools/duckdns/.gitignore @@ -1 +1,2 @@ .env +*.log diff --git a/tools/duckdns/install.sh b/tools/duckdns/install.sh index 52e8008..3b1a9d1 100755 --- a/tools/duckdns/install.sh +++ b/tools/duckdns/install.sh @@ -1,22 +1,9 @@ #!/bin/bash +thisdir="$( dirname "$(readlink -e -- "${BASH_SOURCE[0]}")")" # https://www.duckdns.org/install.jsp -thisdir="$( dirname "$(readlink -e -- "${BASH_SOURCE[0]}")")" - +croncmd="$thisdir/update.sh" +cronjob="*/30 * * * * $croncmd" # every 30 min +( crontab -l | grep -v -F "$croncmd" ; echo "$cronjob" ) | crontab - cp -f "$thisdir/.env.example" "$thisdir/.env" - -cat <> "$thisdir/log/$datestamp.log" +} + [ ! -f "$thisdir/.env" ] && { - echo "ERROR: .env not exists" + log "ERROR: .env not exists" exit 1 } source "$thisdir/.env" [ -z "$DUCK_TOKEN" ] && { - echo "ERROR: env var DUCK_TOKEN not specified" + log "ERROR: env var DUCK_TOKEN not specified" exit 1 } [ -z "$DUCK_DOMAINS" ] && { - echo "ERROR: env var DUCK_DOMAINS not specified" + log "ERROR: env var DUCK_DOMAINS not specified" exit 1 } -curl -k "https://www.duckdns.org/update?domains=${DUCK_DOMAINS}&token=${DUCK_TOKEN}&ip=${DUCK_IP}" +result=$(curl -s "https://www.duckdns.org/update?domains=${DUCK_DOMAINS}&token=${DUCK_TOKEN}&ip=${DUCK_IP}") +log "$result"