--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dnssec-killkey Mon Jun 28 18:02:04 2010 +0200
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+ZONE_DIR="/etc/bind/master" # ordner fuer die einzelnen zonedateiordner
+ABL_ZEIT=1440 # zeit in minuten waehrend der 2 keys verwendet werden / ungefaehr doppelte TTL
+
+cd $ZONE_DIR
+for DOMAIN in *
+do
+
+ if ( find $ZONE_DIR/$DOMAIN -name "index*" -mmin +$ABL_ZEIT >/dev/null ) # prueft die schluesselindexdateien
+ then # auf zeitpunkt der aenderung
+
+ cd $ZONE_DIR/$DOMAIN
+ INDEX_FILE=`find . -name "index*" -mmin +$ABL_ZEIT` # schreibt eine liste INDEX_FILE aller
+ # dateien die vor ABL_ZEIT erstellt worden
+ for INDEX in $INDEX_FILE
+ do
+
+ if ( wc -l $INDEX | grep ^2 > /dev/null ) # prueft die indexdatei auf anzahl an eintraegen
+ then
+ INDEX=${INDEX#./}
+ echo aktualisiert $INDEX in $DOMAIN
+
+ DNS_KEY=`tail -n1 $INDEX` # speichert den letzten eintrag aus dem
+ # index in die variable DNS_KEY
+
+ echo $DNS_KEY > $ZONE_DIR/$DOMAIN/$INDEX # schreibt nur die variable
+ # DNS_KEY in die indexdatei
+
+ rm $(ls K*[key,private] | grep -v "`cat index.zsk`" | \
+ grep -v "`cat index.ksk`") 2> /dev/null # loesche alle schluessel die nicht in der indexdatei
+ # stehen
+ mv $DOMAIN $DOMAIN.old
+ grep -v 'DNSKEY' $DOMAIN.old >> $DOMAIN # erzeugt ein backup und entfernt alle schluessel
+ # aus der zonedatei
+ cat K$DOMAIN.*key >>$DOMAIN # schreibt die aktuellen schluessel in die zonedatei
+ dnssec-signzone $DOMAIN
+ fi
+
+
+ done
+ fi
+done