diff -r 5509b98ea064 -r 5786a8b53c78 dnssec-killkey --- a/dnssec-killkey Wed Jul 14 12:05:41 2010 +0200 +++ b/dnssec-killkey Wed Jul 14 15:37:27 2010 +0200 @@ -1,17 +1,19 @@ #!/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 +source dnstools.conf -cd $ZONE_DIR -for DOMAIN in * +master_dir=$MASTER_DIR # ordner fuer die einzelnen zonedateiordner +ablauf_zeit=$ABL_ZEIT # zeit in minuten waehrend der 2 keys verwendet werden / ungefaehr doppelte TTL + +cd $master_dir +for domain in * do - if ( find $ZONE_DIR/$DOMAIN -name "index*" -mmin +$ABL_ZEIT >/dev/null ) # prueft die schluesselindexdateien + if ( find $master_dir/$domain -name "index*" -mmin +$ablauf_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 + cd $master_dir/$domain + INDEX_FILE=`find . -name ".index*" -mmin +$ablauf_zeit` # schreibt eine liste INDEX_FILE aller # dateien die vor ABL_ZEIT erstellt worden for INDEX in $INDEX_FILE do @@ -19,22 +21,24 @@ if ( wc -l $INDEX | grep ^2 > /dev/null ) # prueft die indexdatei auf anzahl an eintraegen then INDEX=${INDEX#./} - echo aktualisiert $INDEX in $DOMAIN + echo aktualisiert $INDEX in $domain - DNS_KEY=`tail -n1 $INDEX` # speichert den letzten eintrag aus dem + 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 + echo $DNS_KEY > $master_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 + mv $domain .$domain + grep -v 'DNSKEY' .$domain >> $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 + cat K$domain.*key >>$domain # schreibt die aktuellen schluessel in die zonedatei + + key_counter=`< keycounter` + dnssec-signzone $domain && echo $[ key_counter + 1 ] > keycounter fi