Reorganise scripts
This commit is contained in:
parent
5ebf7f9b5c
commit
4ae0656da4
18 changed files with 196 additions and 104 deletions
65
.config/scripts/cron/dns.sh
Normal file
65
.config/scripts/cron/dns.sh
Normal file
|
@ -0,0 +1,65 @@
|
|||
export AWS_PROFILE=default
|
||||
DOMAIN="pfy.ch"
|
||||
declare -a SUB_DOMAINS=("home" "git" "zip")
|
||||
|
||||
# Scripts
|
||||
CURRENT_IP=`dig @resolver4.opendns.com myip.opendns.com +short`
|
||||
|
||||
HOSTED_ZONE_ID=$(
|
||||
/usr/local/bin/aws route53 list-hosted-zones \
|
||||
| /usr/local/bin/jq \
|
||||
--arg domain "$DOMAIN." \
|
||||
'.HostedZones
|
||||
| map(select(.Name == $domain))
|
||||
| .[] .Id' \
|
||||
| sed 's/"//g'
|
||||
)
|
||||
|
||||
for SUB_DOMAIN in "${SUB_DOMAINS[@]}"
|
||||
do
|
||||
RECORD_VALUE=$(
|
||||
/usr/local/bin/aws route53 list-resource-record-sets \
|
||||
--hosted-zone-id $HOSTED_ZONE_ID \
|
||||
| /usr/local/bin/jq \
|
||||
--arg fullDomain "$SUB_DOMAIN.$DOMAIN." \
|
||||
'.ResourceRecordSets
|
||||
| map(select(.Name == $fullDomain))
|
||||
| .[] .ResourceRecords
|
||||
| .[] .Value' \
|
||||
| sed 's/"//g'
|
||||
)
|
||||
|
||||
if test "$CURRENT_IP" != "$RECORD_VALUE"; then
|
||||
CHANGE_REQUEST="
|
||||
{
|
||||
\"HostedZoneId\": \"$HOSTED_ZONE_ID\",
|
||||
\"ChangeBatch\": {
|
||||
\"Comment\": \"Dynamic DNS change\",
|
||||
\"Changes\": [
|
||||
{
|
||||
\"Action\": \"UPSERT\",
|
||||
\"ResourceRecordSet\": {
|
||||
\"Name\": \"$SUB_DOMAIN.$DOMAIN\",
|
||||
\"Type\": \"A\",
|
||||
\"TTL\": 3600,
|
||||
\"ResourceRecords\": [
|
||||
{
|
||||
\"Value\": \"$CURRENT_IP\"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
"
|
||||
|
||||
echo "$CURRENT_IP does not match $RECORD_VALUE on $SUB_DOMAIN.$DOMAIN. Changing...";
|
||||
/usr/local/bin/aws route53 change-resource-record-sets --hosted-zone-id $HOSTED_ZONE_ID --cli-input-json "$CHANGE_REQUEST"
|
||||
/Users/noahheague/.config/scripts/webhook.sh \
|
||||
-c "dns" \
|
||||
-m "$CURRENT_IP does not match $RECORD_VALUE on $SUB_DOMAIN.$DOMAIN"
|
||||
else
|
||||
echo "$CURRENT_IP matches $RECORD_VALUE on $SUBDOMAIN.$DOMAIN."
|
||||
fi
|
||||
done
|
Loading…
Add table
Add a link
Reference in a new issue