Thread Code schlanker machen?
(10 answers)
Opened by Beeboop at 2009-03-23 01:36
ungetestet,
soll nur eine Anregung sein... Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 #!/usr/bin/perl -w use strict; use warnings; # In der main.cf wurde bei relayhost keine IP eingetragen, sondern der DynDns-Name. # Dadurch ist es nicht noetig, dort die IP zu aendern! my $main = "/etc/postfix/main.cf"; my $maintmp ="/etc/postfix/ma.txt"; my $transport = "/etc/postfix/transport"; my $transporttmp="/etc/postfix/max.txt"; my $search1=qx(mynetworks\s*=\s*([\d.]+?)/32\s*,\s*127.0.0/8); my $search2=qx((.+?(?:.com)?) smtp:); #IP-Adresse auslesen my $addr = join(".", unpack("C4", (gethostbyname("$name"))[4])); print ("$addr1\n"); MAIN1 (); MAIN2 (); MOVE(); exit(); #IP-Adresse in der main.cf aendern sub MAIN1 { open (IN, '<', $main) || die "Kann die $datei nicht oeffnen($!)\n"; #Ausgabe in Datei, in Datei schreiben open (OUT, '>', $maintmp) || die "Kann $tempdatei nicht oeffnen ($!)\n"; #nach IP-Adresse suchen while(<IN>) { if ($_ =~/$search1/) #Vergleichsoperator ~ { s/$1/$addr/; #ersetzen der Zeile } print OUT $_; } close (IN); close (OUT); } #IP-Adresse in der transport aendern sub MAIN2 { open (IN, '<', $transport)|| die "Kann $transport nicht oeffnen\n"; open (OUT, '>', $transporttmp)|| die "Kann die $transporttmp nicht oeffnen\n"; #nach IP-Adresse suchen while(<IN>) { if ($_ =~/$search2/) #Vergleichsoperator ~ { s/$1/$addr/; #ersetzen der Zeile s= Ersetzoperator } print OUT $_; } #Ausgabe in Datei, in Datei schreiben close(OUT); close (IN); } sub MOVE { unlink("$main.old") if(-e "$main.old"); rename($main "$main.old"); rename($maintmp $main); unlink("$transport.old") if(-e "$transport.old"); rename($transport "$transport.old"); rename($transporttmp $transport); system("postmap $transport"); # Neue transport einlesen system("postfix reload"); # System neu starten } Last edited: 2009-03-23 07:35:01 +0100 (CET) |