Entwickler Treffen
Tim Niemeyer
tim.niemeyer at mastersword.de
Mi Sep 30 22:11:46 CEST 2015
Hi zusammen
Ohne mir näher die Syntax angeschaut zu haben: Ich bin begeistert.
Sieht doch insgesamt nach sehr wenig Aufwand aus. Jetzt müssen wir das
nur noch aufsetzen. ;-)
Tim
Am Dienstag, den 29.09.2015, 21:08 +0200 schrieb mayosemmel:
> Hallo zusammen,
>
> zum Thema fff-community hatten wir ja beim letzten Technik Treffen
> besprochen, das man ausschließlich primäre DNS Server aufsetzt und dann
> das Zone-File Synchronisiert.
> Damit habe ich mich dann nochmal ein bisschen auseinander gesetzt und
> zur Synchronisation ein Script geschrieben (siehe unten). Wenn ihr
> Verbesserungen habt, immer drauf los!
> Alles weitere können wir ja dann am Freitag besprechen.
>
> Grüße Jan
>
>
> #!/bin/bash
>
> #Server die abgefragt werden sollen (Alle DNS Peers)
> DnsPeers=(ns1.kraus.moe kraus.moe ns2.kraus.moe)
> #Name der Zone die verteilt werden soll
> DomainZone="kraus.moe"
> #Position und Name des Zone Files
> OwnZoneFile="/etc/bind/db.kraus.moe"
> #Temporäres Verzeichnis - muss pro Zone exclusiv sein!
> TempDir="/tmp/fff-dns"
> #Backup Verzeichnis
> BackupDir="/home/freifunk/DNS-Backup"
> #Wie viele Backups sollen aufgehoben werden? Nur Integer Werte!
> BackupsToStore=20
>
>
> function backup
> {
> datetime=$(date +"%Y-%m-%d_%H-%M-%S")
> mkdir -p $1/$datetime
> cp $OwnZoneFile $1/$datetime/.
> BackupFiles=( $(ls -t $1) )
> if [ -n ${BackupFiles[0]} ] && [ ${#BackupFiles[@]} -gt 20 ]
> then
> rm -rf $1/${BackupFiles[$BackupsToStore]}
> fi
> }
>
> function exit_script
> {
> rm -rf $TempDir
> exit $1
> }
>
> mkdir -p $TempDir
> cd $TempDir
> OwnSerial=$(grep SOA $OwnZoneFile |awk 'NR==1{print $7}')
> HighestSerialSoFar=0
> for peer in "${DnsPeers[@]}"
> do
> #Zone File von Peering DNS Servern herunterladen
> dig @$peer $DomainZone axfr |grep -v ";"> $peer
> #Seriennummer des Zone Files einlesen
> PeerSerial=$(grep SOA $peer |awk 'NR==1{print $7}')
> #Falls keine Seriennummer vorhanden, ist das File invalid oder die
> Verbindung zum Peer ist nicht in Ordnung
> if [ -z $PeerSerial ]
> then
> rm -f $peer
> continue
> PeerSerial=1
> fi
> #Falls eigenes Zone File keine Seriennummer enthält und somit invalid
> ist, automatisch erstbestes valides nutzen
> if [ -z $OwnSerial ]
> then
> cp $peer $OwnZoneFile
> exit 0
> fi
> #Nur die Zone-Files mit dem höchsten Serial behalten - wenn dieser
> höher ist als der bereits vorhandene
> if [ $OwnSerial -ge $PeerSerial ]
> then
> rm -f $peer
> continue
> elif [ ${HighestSerialSoFar[0]} -gt $PeerSerial ]
> then
> rm -f $peer
> continue
> else
> HighestSerialSoFar=( $PeerSerial $peer )
> fi
> done
>
> #Anzahl der verbliebenen Zone Files ermitteln
> PeerZoneFileCount=$(ls -l|wc -l)
> #Im Falle von einem Update vorher ein Backup machen
> if [ $PeerZoneFileCount -gt 1 ]
> then
> backup $BackupDir $BackupsToStore
> else
> exit_script 0
> fi
>
> #Falls nur ein Zone File verblieben ist, direkt einspielen und
> neustarten
> if [ $PeerZoneFileCount -eq 2 ]
> then
> cp ${HighestSerialSoFar[1]} $OwnZoneFile
> /etc/init.d/bind9 restart
> exit_script 0
> #Im Fall von mehreren Zone Files, prüfen ob alle identisch sind. Falls
> nicht Abbruch. Ansonsten einspielen und neustart
> else
> md5=$(md5sum ${HighestSerialSoFar[1]} |awk '{print $1}')
> for ZoneFile in *
> do
> loopmd5=$(md5sum $ZoneFile |awk '{print $1}')
> if [ $md5 != $loopmd5 ]
> then
> echo $md5 $loopmd5
> exit_script 1
> fi
> done
> cp ${HighestSerialSoFar[1]} $OwnZoneFile
> /etc/init.d/bind9 restart
> exit_script 0
> fi
>
>
> Am Montag, den 28.09.2015, 03:32 +0200 schrieb Christian Dresel:
> > Guten Morgen
> >
> > ich ebenso, außer die Mehrheit stammt von wo anders her, dann kann man
> > natürlich drüber reden ;)
> >
> > mfg
> >
> > Christian
> >
> > Am 27.09.2015 um 22:18 schrieb mayosemmel:
> >
> > > Hallo Tim,
> > >
> > > Ich wäre auch fürs Lab.
> > >
> > > Grüße Jan
> > >
> > > ____________________________________________________________________
> > > Von: Tim Niemeyer
> > > Gesendet: 27.09.2015 22:16
> > > An: franken-dev at freifunk.net
> > > Betreff: Re: Entwickler Treffen
> > >
> > >
> > > Am Sonntag, den 27.09.2015, 17:07 +0200 schrieb Tim Niemeyer:
> > > > Moin zusammen
> > > >
> > > > Es wird mal wieder Zeit.
> > > >
> > > > https://dudle.inf.tu-dresden.de/Dev_Meeting/
> > > >
> > > > Ich denke wir nehmen dann den Termin, der heute Abend ~22 Uhr raus
> > > > kommt.
> > >
> > > Yay, prima Sache. Das Dudle zeigt ganz deutlich auf Freitag 19:00
> > > Uhr.
> > > Ich hab mal wieder das Büro im Lab reserviert, aber wie gesagt
> > > können
> > > wir gern auch wo anders hin.
> > >
> > > Tim
> > >
> > > >
> > > > Als Ort würde ich spontan das Nürnberger Lab vorschlagen, wir
> > > können das
> > > > aber auch woanders, z.B. in Bamberg oder so, machen.
> > > >
> > > > Punkte:
> > > > * Dezentraler keyXchange
> > > > * VPN Server Refugee
> > > > * Netmon / Monitoring
> > > > * L3 Routing über Funkstrecken
> > > > * OLSRv2
> > > > * DNS: fff.community
> > > >
> > > > Tim
> > > > --
> > > > franken-dev mailing list
> > > > franken-dev at freifunk.net
> > > >
> > > http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
> > >
> > >
> > > --
> > > franken-dev mailing list
> > > franken-dev at freifunk.net
> > > http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
> > >
> > >
> >
> > --
> > franken-dev mailing list
> > franken-dev at freifunk.net
> > http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
>
>
Mehr Informationen über die Mailingliste franken-dev