summaryrefslogtreecommitdiff
path: root/ddns.sh
blob: 6685597102a07191e987caafb3f41ba6eb9bbe45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash

set -e

UPDATE_FILE=$(tempfile -p ddns-)
IP_ADDR=$(curl -ks https://mike.crute.me/ip)
ZONE_ID=""
HOSTNAME=""

# Assert valid format of IP
echo $IP_ADDR | egrep "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" > /dev/null 2>&1

cat > $UPDATE_FILE <<EOF
{ "Changes": [{
    "Action": "UPSERT",
    "ResourceRecordSet": {
        "Name": "$HOSTNAME",
        "Type": "A",
        "TTL": 60,
        "ResourceRecords": [{ "Value": "$IP_ADDR" }]
    }}]
}
EOF

aws route53 change-resource-record-sets --profile snoopydyndns --hosted-zone-id $ZONE_ID --change-batch "file://$UPDATE_FILE" > /dev/null
rm $UPDATE_FILE

logger "DDNS update completed"