diff -r 000000000000 -r 51d248a512a1 killkeys --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/killkeys Fri Jun 18 15:36:13 2010 +0200 @@ -0,0 +1,43 @@ +#!/bin/bash + +ZONE_DIR="/etc/bind/master" # ordner fuer die einzelnen zonedateiordner +ABL_ZEIT=30 # 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