16 } |
19 } |
17 close (CONFIG); |
20 close (CONFIG); |
18 |
21 |
19 my $master_dir = $config{master_dir}; |
22 my $master_dir = $config{master_dir}; |
20 |
23 |
|
24 die "$config{master_dir}: $!\n" |
|
25 if not -d $config{master_dir} or not -r $config{master_dir}; |
|
26 |
21 printf "%-25s %1s/%1s %3s %7s\n", "Domain", "ZSK", "KSK", "Used", "Sig-end"; |
27 printf "%-25s %1s/%1s %3s %7s\n", "Domain", "ZSK", "KSK", "Used", "Sig-end"; |
22 for (<$master_dir/*>) { |
|
23 s#($master_dir/)(.*)#$2#; |
|
24 my $zone = $_; |
|
25 |
28 |
26 my $info_zsk; |
29 my $zone; |
27 my $info_ksk; |
30 my ($info_zsk, $info_ksk, $info_kc, $info_end); |
28 my $info_kc; |
|
29 my $info_end; |
|
30 my @temp; |
|
31 |
31 |
32 #prueft wie viele zsks genutzt werden |
32 foreach my $dir (glob "$master_dir/*") { |
33 open(FILE, "$master_dir/$zone/.index.zsk"); |
33 |
34 @temp = <FILE>; |
34 $zone = basename($dir); |
35 close(FILE); |
|
36 $info_zsk = @temp; |
|
37 |
35 |
38 #prueft wie viele ksks genutzt werden |
36 if (not -f "$dir/.index.zsk") { |
39 open(FILE, "$master_dir/$zone/.index.ksk"); |
37 $info_zsk = $info_ksk = $info_kc = 0; |
40 @temp = <FILE>; |
38 $info_end = "-"; |
41 close(FILE); |
39 next; |
42 $info_ksk = @temp; |
|
43 |
|
44 #prueft wie oft die schluessel zum signieren genutzt wurden |
|
45 if (-e "$master_dir/$zone/.keycounter") { |
|
46 open(FILE, "$master_dir/$zone/.keycounter"); |
|
47 chomp ($info_kc = <FILE>); |
|
48 close(FILE); |
|
49 } else { |
|
50 $info_kc = "-"; |
|
51 } |
40 } |
52 |
41 |
53 #prueft das ablaufdatum |
42 # prueft wie viele zsks genutzt werden |
54 if (-e "$master_dir/$zone/$zone.signed") { |
43 close(FILE); |
55 open(FILE, "$master_dir/$zone/$zone.signed"); |
44 open(FILE, $_ = "<$dir/.index.zsk") or die "Can't open $_: $!\n"; |
56 @temp = <FILE>; |
45 () = <FILE>; |
57 close (FILE); |
46 $info_zsk = $.; |
58 |
47 |
59 for (@temp) { |
48 # prueft wie viele ksks genutzt werden |
60 if (m/RSIG.*SOA.*\s(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)\d+\s\(/i) { |
49 close(FILE); |
61 $info_end = "$3.$2.$1 $4:$5"; |
50 open(FILE, $_ = "<$dir/.index.ksk") or die "Can't open $_: $!\n"; |
62 } |
51 () = <FILE>; |
63 } |
52 $info_ksk = $.; |
64 |
53 |
65 } else { |
54 # prueft wie oft die schluessel zum signieren genutzt wurden |
|
55 open(FILE, $_ = "<$dir/.keycounter") or die "Can't open $_: $!\n"; |
|
56 chomp ($info_kc = <FILE>); |
|
57 |
|
58 # prueft das ablaufdatum |
|
59 if (!-f "$dir/$zone.signed") { |
66 $info_end = "-"; |
60 $info_end = "-"; |
|
61 next; |
67 } |
62 } |
68 |
63 |
69 printf "%-25s %1s/%1s %5s %19s\n", $zone, $info_zsk, $info_ksk, $info_kc, $info_end; |
64 open(FILE, $_ = "<$dir/$zone.signed") or die "Can't open $_: $!\n"; |
|
65 while (<FILE>) { |
|
66 $info_end = "$+{day}.$+{mon}.$+{year} $+{hour}:$+{min}" |
|
67 if /RSIG.*SOA.*\s |
|
68 (?<year>\d\d\d\d) |
|
69 (?<mon>\d\d) |
|
70 (?<day>\d\d) |
|
71 (?<hour>\d\d) |
|
72 (?<min>\d\d)\d+\s\(/ix; |
|
73 } |
|
74 |
|
75 } continue { |
|
76 printf "%-25s %1d/%1d %5d %19s\n", $zone, $info_zsk, $info_ksk, $info_kc, $info_end; |
70 } |
77 } |
71 |
78 |