--- 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