init III
This commit is contained in:
85
Replace DNS Zone Files Entries/replace.pl
Normal file
85
Replace DNS Zone Files Entries/replace.pl
Normal file
@@ -0,0 +1,85 @@
|
||||
#!/usr/bin/perl
|
||||
use strict;
|
||||
|
||||
# alle domains einlesen
|
||||
print "\nFolgende Domains werden bearbeitet\n";
|
||||
open DOMAINS, "<replace/domains"; my @domains=<DOMAINS>; close DOMAINS; foreach (@domains) { chomp; print "$_\n"; }
|
||||
|
||||
# dmarc eintrag lesen
|
||||
print "\nAlte DMARC Einträge werden durch diesen ersetzt\n";
|
||||
open DMARC, "<replace/dmarc"; my @dmarc=<DMARC>; close DMARC; foreach (@dmarc) { chomp; print "$_\n"; }
|
||||
|
||||
# dkim eintrag lesen
|
||||
print "\nAlte DKIM Einträge werden durch diese Zeilen ersetzt\n";
|
||||
open DKIM, "<replace/dkim"; my @dkim=<DKIM>; close DKIM; foreach (@dkim) { chomp; print "$_\n"; }
|
||||
|
||||
print "\nSeriennummer wird zusammengesetzt aus dem Datum und einer 2-stelligen laufenden Nummer\n";
|
||||
print "Die laufende Nummer muss manuell angegeben werden.\n";
|
||||
print "laufende Nummer [xx]?";
|
||||
my $nr=<STDIN>; chomp $nr;
|
||||
|
||||
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
|
||||
$year+=1900; $mon++;
|
||||
|
||||
my $serial = sprintf ("%04d%02d%02d%02d", $year, $mon, $mday, $nr);
|
||||
|
||||
print "\nFortfahren, dann <ENTER>\n";
|
||||
<STDIN>;
|
||||
|
||||
print "Sicherheitskopie aller Zonendateien anlegen\n";
|
||||
print " Backup Verzeichnis erstellen\n";
|
||||
my $dir=sprintf ("%04d%02d%02d-%02d%02d", $year, $mon, $mday, $hour, $min);
|
||||
`mkdir $dir`;
|
||||
print "Zonendateien kopieren\n";
|
||||
`cp *.zone $dir/`;
|
||||
|
||||
print "\nTemporäre Zonendateien erstellen\n";
|
||||
# domain für domain bearbeiten
|
||||
foreach my $domain (@domains) {
|
||||
print "========== $domain ==========\n";
|
||||
# zonendatei einlesen
|
||||
open DOMAIN, "<$domain.zone";
|
||||
my @domain=<DOMAIN>;
|
||||
close DOMAIN;
|
||||
|
||||
# temporäre zonendatei erstellen
|
||||
open TEMP, ">$domain.zone.tmp";
|
||||
foreach my $line (@domain) {
|
||||
chomp $line;
|
||||
if ( $line =~ /_dmarc/ ) {
|
||||
# dmarc eintrag ersetzen
|
||||
print "Ersetze DMARC Eintrag\n";
|
||||
printf TEMP "$dmarc[0]\n";
|
||||
} elsif ( $line =~ /_domainkey/ or
|
||||
$line =~ /^\s*".*"/ or
|
||||
$line =~ /^\s*".*"\s*\)/ ) {
|
||||
# weitere dkim einträge entfernen
|
||||
print "Entferne DKIM Eintrag\n";
|
||||
} elsif ( $line =~ /; serial/) {
|
||||
# serial
|
||||
printf TEMP " %s ; serial\n", $serial;
|
||||
} else {
|
||||
# andere Einträge unbearbeitet übernehmen
|
||||
printf TEMP "$line\n";
|
||||
}
|
||||
}
|
||||
|
||||
# dkim einträge hinten anhängen
|
||||
print "Neuen DKIM Eintrag schreiben\n";
|
||||
foreach (@dkim) {
|
||||
printf TEMP "$_\n";
|
||||
}
|
||||
|
||||
close TEMP;
|
||||
}
|
||||
|
||||
print "\nUnschöne Zeilenenden entfernen\n";
|
||||
foreach (@domains) { `sed -i "s/\r//g" $_.zone.tmp`; }
|
||||
|
||||
print "Alte Dateien entfernen\n";
|
||||
foreach (@domains) { unlink ("$_.zone"); }
|
||||
|
||||
print "Temporäre Dateien umbenennen\n";
|
||||
foreach (@domains) { `mv "$_.zone.tmp" "$_.zone"`; }
|
||||
|
||||
print "\nfertig\n";
|
||||
Reference in New Issue
Block a user