killkeys
changeset 0 51d248a512a1
equal deleted inserted replaced
-1:000000000000 0:51d248a512a1
       
     1 #!/bin/bash
       
     2 
       
     3 ZONE_DIR="/etc/bind/master"	# ordner fuer die einzelnen zonedateiordner
       
     4 ABL_ZEIT=30			# zeit in minuten waehrend der 2 keys verwendet werden / ungefaehr doppelte TTL 
       
     5 
       
     6 cd $ZONE_DIR
       
     7 for DOMAIN in *
       
     8 do
       
     9 
       
    10 	if ( find $ZONE_DIR/$DOMAIN -name "index*" -mmin +$ABL_ZEIT >/dev/null )	# prueft die schluesselindexdateien
       
    11 	then										# auf zeitpunkt der aenderung
       
    12 
       
    13 		cd $ZONE_DIR/$DOMAIN
       
    14 		INDEX_FILE=`find . -name "index*" -mmin +$ABL_ZEIT`		# schreibt eine liste INDEX_FILE aller
       
    15 										# dateien die vor ABL_ZEIT erstellt worden
       
    16 		for INDEX in $INDEX_FILE
       
    17 		do
       
    18 		
       
    19 			if ( wc -l $INDEX | grep ^2 > /dev/null )	# prueft die indexdatei auf anzahl an eintraegen
       
    20 			then						
       
    21 				INDEX=${INDEX#./}			
       
    22 				echo aktualisiert $INDEX in $DOMAIN
       
    23 				
       
    24 				DNS_KEY=`tail -n1 $INDEX` 		# speichert den letzten eintrag aus dem
       
    25 									# index in die variable DNS_KEY
       
    26 			
       
    27 				echo $DNS_KEY > $ZONE_DIR/$DOMAIN/$INDEX	# schreibt nur die variable
       
    28 										# DNS_KEY in die indexdatei
       
    29 	
       
    30 				rm $(ls K*[key,private] | grep -v "`cat index.zsk`" | \
       
    31 				grep -v "`cat index.ksk`") 2> /dev/null		# loesche alle schluessel die nicht in der indexdatei
       
    32 										# stehen
       
    33 				mv $DOMAIN $DOMAIN.old
       
    34 				grep -v 'DNSKEY' $DOMAIN.old >> $DOMAIN		# erzeugt ein backup und entfernt alle schluessel
       
    35 										# aus der zonedatei
       
    36 				cat K$DOMAIN.*key >>$DOMAIN			# schreibt die aktuellen schluessel in die zonedatei
       
    37 				dnssec-signzone $DOMAIN
       
    38 			fi
       
    39 			
       
    40 
       
    41 		done
       
    42 	fi
       
    43 done