Leser: 29
1
2
3
4
5
01-87-FE-84-88-EA e1-126-ost
00-86-FC-7E-35-99 e1-111-west
00-86-FC-7E-32-A0 e1-156-ost
01-87-FC-7E-EA-12 e1-126-ost
01-87-FC-7B-DA-01 e1-126-ost
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
###############################################
#Here the minium config for this file.cfg ! #
#Do not delete this little help ! #
#All commands with "#" will not be used ! #
#1.Username <admin Default> #
#2.Password <none > #
#3.set length 0 #
#x...x...x... #
#z.exit #
# #
# Bitte führen Sie das Program unter DOS aus: #
# C:\>dfedc1.exe #
###############################################
USER
PASS
set length 0
show multiauth session mac [i]MAC-ADRESSE[/i]
show multiauth session mac [i]MAC-ADRESSE[/i]
show multiauth session mac [i]MAC-ADRESSE[/i]
exit
($mac2,$switch2)= split(/ /,@jet_macs);
2011-03-31T09:18:24 QWERTZ7aber wie splitte ich das array? *Perl-Noobie*
print "$mac2";
1 2 3 4 5
foreach (@jet_macs) { # quatsch, sorry! ($mac2,$switch2) = split / /,$jet_macs[$_]; ($mac2,$switch2) = split / /,$_; # so ist richtig # und hier die Datei anlegen }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
foreach (@jet_macs)
{
($mac2,$switch2) = split / /,$_;
if (-e "$switch2.cfg")
{
print "Datei existiert bereits!\n";
}
else
{
open(OUT,">$switch2.cfg");
print OUT "show multiauth mac $mac2";
close(OUT);
}
}
1 2 3
open (my $in,'<',$liste) or die "Fehler: $!\n"; @jet_macs = <$in>; close $in;
2011-03-31T11:49:59 QWERTZ7//Edit: Muss mich korrigieren: Die verschiedenen Dateien werden angelegt, auch für mehrere Switche. Allerdings beinhalten diese halt immer nur eine MAC-Adresse.
$" = "\n";
2011-03-31T12:18:59 QWERTZ7Könnte das damit zusammenhängen?
1
2
3
4
5
Wed Mar 23 13:00:28 2011 : Auth: Login OK: [00-11-0A-FA-FB-AA/NOPASSWORD] (from client kgn751 port 31045 cli 00-11-0A-FA-FB-AA)
Wed Mar 23 13:01:02 2011 : Auth: Login OK: [00-0B-5D-0B-D6-44/NOPASSWORD] (from client WabeN7-55 port 11031 cli 00-0B-5D-0B-D6-44)
Wed Mar 23 13:01:22 2011 : Auth: Login OK: [00-00-85-7B-44-F7/NOPASSWORD] (from client e1-110-west port 36 cli 00-00-85-7B-44-F7)
Wed Mar 23 13:01:37 2011 : Auth: Login OK: [00-C4-FF-7F-34-07/NOPASSWORD] (from client e1-111-west port 76 cli 00-C4-FF-7F-34-07)
Wed Mar 23 13:05:29 2011 : Auth: Login OK: [08-37-FF-0C-E7-39/NOPASSWORD] (from client e1-140-west port 3 cli 08-37-FF-0C-E7-39)
1
2
3
4
5
00-C0-EE-36-3A-67 WabeN7-55
00-60-B0-39-15-FF kgn754
00-C0-EE-4B-16-FB kgn751
00-C0-EE-5C-EA-C3 kgn751
00-C0-EE-5C-70-AD kgn752
2011-03-31T11:09:57 biancaDu willst ja pro Switch eine Datei anlegen.
Also baust du eine große Schleife drum, z.B. so:
Code (perl): (dl )1 2 3 4 5foreach (@jet_macs) { # quatsch, sorry! ($mac2,$switch2) = split / /,$jet_macs[$_]; ($mac2,$switch2) = split / /,$_; # so ist richtig # und hier die Datei anlegen }
Editiert von bianca: Codekorrektur
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
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $file = 'relevante_macs.txt'; my %switch_macs; # Open file with previously grepped data open (my $in, '<', $file) or die "Can't open $file: $!"; my @jet_macs = <$in>; # Build a hash with switches as key and macs as value foreach my $line (@jet_macs) { my ($mac, $switch) = split ' ', $line; push @{$switch_macs{$switch}}, $mac; } # What the fuck was this last push statement about? print Dumper \%switch_macs; # Now we got a nice hash, lets create the desired files foreach my $switch (keys %switch_macs) { if ( -e "$switch.cfg" ) { print "Sorry, won't overwrite an existing file\n"; next; } else { my $file_out; open($file_out, '>', "$switch.cfg") or die "Can't open $file_out: $!"; print $file_out "Here comes the header\n"; # Put the macs into the file foreach my $mac ( @{$switch_macs{$switch}} ) { print $file_out "show multiauth mac $mac\n"; } print $file_out "Here comes the footer\n"; close $file_out; } }
2011-03-31T18:27:44 gabimucmag zwar nicht der weisheit letzer schluß sein, aber zumindest funzt's wie geplant.
QuoteJa, vermutlich funktioniert dein Vorschlag wie gewünscht, hab es nicht geprüft.
Quote...dass man ein fertiges Script ohne Lerneffekt haben wollte.
...
Und in deinem Script stecken nun halt auch etliche Dinge, die der selbsterklärte Vollanfänger Fragesteller mit Sicherheit in dieser dahingeschmissenen Form nicht verstehen können wird,...
QuoteWirst du die kommenden Tage auch so aktiv hier sein, um die ganzen Rückfragen zu beantworten oder überlässt du das uns/mir "Einauge" ?
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
#Variablen-Deklaration
my $file = 'logs/relevante_macs.txt';
my %switch_macs;
#Öffnen der Datei mit den übrigen, relevanten MACs und Einlesen in ein array
open (my $in, '<', $file) or die "Can't open $file: $!";
my @jet_macs = <$in>;
#??? Erstellen eines Hashes mit den Switchen als Key und den MACs als Value (Was bedeutet das genau mit Key udn Value?)
foreach my $line (@jet_macs) {
my ($mac, $switch) = split ' ', $line;
push @{$switch_macs{$switch}}, $mac;
}
#???? Macht was genau
print Dumper \%switch_macs;
#Hash wurde erstellt, jetzt werden die .cfg-Dateien erstellt
foreach my $switch (keys %switch_macs) {
if ( -e "$switch.cfg" ) {
print "Sorry, won't overwrite an existing file\n";
next;
} else {
my $file_out;
#Datei zum Schreiben öffnen
open($file_out, '>', "logs/$switch.cfg") or die "Can't open $file_out: $!";
#Header schreiben
print $file_out "#HEADER\n";
#??? Was macht das?
foreach my $mac ( @{$switch_macs{$switch}} ) {
#Schreiben der MACs in die Datei
print $file_out "show multiauth session mac $mac\n";
}
#Footer schreiben
print $file_out "FOOTER\n";
#Datei schließen
close $file_out;
}
}
2011-03-31T08:33:10 QWERTZ7Das mysteriöse an der Sache ist, dass dieses Problem plötzlich und ohne (vermeintliche)vorherige Änderungen aufgetreten ist.
Quoteno policy applied