davideaves.com

Live in a world of your own, but always welcome visitors.

View on GitHub
6 January 2012

Quickly update or delete a zonefile host entry.

by deaves

#!/bin/bash
## Created By: deaves
# Quickly update or delete a zonefile host entry.
#
## Requires: dnsutils, netcat, sshfp (python script)

DOMAIN="foo.com"
SERVER="ns.foo.com"

##### Begin Script #####

function DELETE () {
### Purge DNS entry for HOST ###
nsupdate  /dev/null && sshfp -s $IPv4 2> /dev/null | awk '{print "update add '$HOST.$DOMAIN' 3600",$2,$3,$4,$5,$6}'`
  send
_EOF_
}

function usage () {
  ### Display the script arguments.
  printf "Usage: $0 [-du] -h <host> -i <ip>\n\n"
  printf "Requires one option!\n"
  printf "\t-d: Delete DNS <host> A and SSHFP records\n"
  printf "\t-u: Update DNS </host><host> A and SSHFP records\n\n"
}

while getopts "duh:i:" ARG; do
  case "${ARG}" in
    d) [ -z $ACTION ] && { ACTION="D"; };;
    u) [ -z $ACTION ] && { ACTION="U"; };;
    h) HOST="$OPTARG";;
    i) IPv4="$OPTARG";;
    ?) echo "Invalid option -$OPTARG"; exit 1;;
  esac
done 2> /dev/null

[ -n "$ACTION" ] && { echo "$ACTION: $HOST ($IPv4)" ; }

if [ "$ACTION" == "U" ]; then
  [ -z "$IPv4" ] && { echo "Error: Missing IP" && exit 1; }
  DELETE
  UPDATE
elif [ "$ACTION" == "D" ]; then
  [ -z "$HOST" ] && { echo "Error: Missing HOST" && exit 1; }
  DELETE
else
  usage && exit 1;
fi
tags: bind - linux - update