Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Perl-Alternative zu SED Streams Editor

Frage Entwicklung Perl

Mitglied: LordMoorhuhn

LordMoorhuhn (Level 1) - Jetzt verbinden

12.04.2007, aktualisiert 28.04.2007, 5064 Aufrufe, 19 Kommentare

Suche Perl-Script welches gleiche Funktion wie SED-Befehl hat

Servus alle zusammen,

ich bin gerade dabei Logs von unserem Proxy auszuwerten. Da ich die Daten aber weitergebe, muss ich diese vorher anonymisieren, sprich der Benutzer "kb300" wird zu "User1", "kb301" zu "User2" etc.. Habe es mit einem Batch via SED-Befehl probiert. Bei zwei User ändern rödelt die Maschine nur lange aber spuckt dann au Ergebnis aus. Ab drei Usern kommt dann Fehler "Couldn´t allocate memory". Wohl etwas zu intensiv fürs Maschinchen. Jetz war meine Idee das Ganze über ein Perl-Script laufen zu lassen, habe aber noch nie wirklich mit Perl gearbeitet. Hat jemand vielleicht zufälligerweise ein solches Script oder auch nur ne kleine Idee die mir weiterhelfen könnte?

Danke und Gruß

P.S.: Das Programm Anonlog habe ich schon probiert, jedoch kann es nix mit meinen Logs anfangen.
Mitglied: 6890
15.04.2007 um 16:52 Uhr
hi,

kanst mal paar informationen rausrücken, wieviele user (kb300-kb90000??) und ob du einfach nur etwas zum anonymisieren brauchst oder ob das noch andere dinge erfüllen soll??

mfg
Bitte warten ..
Mitglied: LordMoorhuhn
15.04.2007 um 19:25 Uhr
Servus,

Userzahlen sind bei 370 in etwa. Also eine Logfile von einem Tag hat ca. 12MB. Es soll lediglich anonymisieren. Mehr net.
Bitte warten ..
Mitglied: 6890
15.04.2007 um 19:30 Uhr
Servus,

Userzahlen sind bei 370 in etwa. Also eine
Logfile von einem Tag hat ca. 12MB. Es soll
lediglich anonymisieren. Mehr net.

ok und sind die nutzer kenunngen immer kbxxx oder kann da auch mal heinz oder klaus stehen??

mfg
Bitte warten ..
Mitglied: LordMoorhuhn
15.04.2007 um 19:31 Uhr
sie fangen immer mit kb37 an

also kb37882
kb37489 usw.
Bitte warten ..
Mitglied: 6890
15.04.2007 um 20:12 Uhr
hallo,

hab mal was geschrieben, müsste funktionieren:
01.
#!/usr/bin/perl 
02.
 
03.
use strict; 
04.
use warnings; 
05.
 
06.
my %user; 
07.
my $logfile = "log.txt"; 
08.
my $increment = 1; 
09.
my @logfile; 
10.
 
11.
open(LOGFILE,"<$logfile") || die "$!"; 
12.
@logfile = <LOGFILE>; 
13.
close(LOGFILE); 
14.
 
15.
chomp(@logfile); 
16.
 
17.
foreach(@logfile) { 
18.
    if($_ =~ m/(kb37\d{1,3})/ig) { 
19.
        my $cache = $1; 
20.
        unless(exists($user{$cache})) { 
21.
            $user{$cache} = "user$increment"; 
22.
            $increment++; 
23.
24.
        $_ =~ s/$cache/$user{$cache}/gi; 
25.
26.
27.
 
28.
open(LOGFILE,">$logfile") || die "$!"; 
29.
print LOGFILE join("\n", @logfile); 
30.
close(LOGFILE); 
31.
 
32.
exit(0);
das liest als erstes das logfile ein, geht es dann zeile für zeile durch und schaut ob das kbxxxxx drinne is, schreibt sich das raus und in ein assoziatives feld, vergibt danach den namen userx und macht das halt für das ganze logfile und schreibt das neue logfile am ende zurück.

jow kommisch erklärt, aber is so

wenn fragen sind melden...

mfg
Bitte warten ..
Mitglied: LordMoorhuhn
15.04.2007 um 20:14 Uhr
is ja klasse!!!

Probiers morgen in der Arbeit gleich aus und geb laut. Großes Danke schonmal!!!!
Bitte warten ..
Mitglied: LordMoorhuhn
16.04.2007 um 08:05 Uhr
so guten Morgähn,

hab jetz dein script mal probiert. Er findet meine Logfile und tüddelt auch, aber er schreibt leider die log.txt nicht zurück. Die ursprüngliche Log bleibt auch unverändert.
Bitte warten ..
Mitglied: 6890
16.04.2007 um 09:52 Uhr
so guten Morgähn,

hab jetz dein script mal probiert. Er findet
meine Logfile und tüddelt auch, aber er
schreibt leider die log.txt nicht
zurück. Die ursprüngliche Log
bleibt auch unverändert.

hmm was is mit lese schreib rechten??
kommt da gar keine fehlermeldung??
läuft das script bis zum ende durch??

mfg
Bitte warten ..
Mitglied: LordMoorhuhn
16.04.2007 um 10:18 Uhr
Oh Herr lass Hirn vom Himmel regnen. Ich Depp hatte nen Schreibfehler drin. Die Sache klappt einwandfrei!!!!

Ganz großes Dankeschön. Echt spitze...

Jetz hoff ich nur noch das mein Analog des so frisst. Aber das is ja andre Geschichte.

Schöne Woche wünsche ich dir!
Bitte warten ..
Mitglied: 6890
16.04.2007 um 10:37 Uhr
Oh Herr lass Hirn vom Himmel regnen. Ich Depp
hatte nen Schreibfehler drin. Die Sache
klappt einwandfrei!!!!

Ganz großes Dankeschön. Echt
spitze...

na is doch toll wenn ich helfen konnte...
kontonummer schick ich per pn

Schöne Woche wünsche ich dir!

hmm...
hab ich was verpasst oder is heut ni monatg

mfg
Bitte warten ..
Mitglied: LordMoorhuhn
16.04.2007 um 11:00 Uhr
tu das ;) Ich hab hier viele Konten zum Geld verschicken wos nicht auffallen würde :D


Noch eine kleine Bitte wenns nicht zu viel Aufwand ist. Ich habe hier so ca. 100 Log dateien die wie folgt aussehen:
access.log.<datum> also access.log.0104, access.log.0204, access.log.0304, usw.

Könntest du in dem Script einfügen dass er sich alle logs, die mit access.log.* beginnen, sucht und diese automatisch anonymisiert? So würde ich mir das manuelle eingeben einer jeden datei ersparen (wobei ich schon 20 habe... ;) )

Mist jetz fällt mir auf dass die ganze Statistik falsch ist, sobald ich mehrere Logs habe. Ich müsste theoretisch vorher die User vergeben, also kb37227 ist User1, kb37558 ist User2 usw.. Könntest mir ein Beispiel geben? Damit ich das dann auf alle User ausweiten kann.

Wenn nich wärs auch nicht schlimm. Danke jedenfalls für die bisherige Hilfe
Bitte warten ..
Mitglied: 6890
17.04.2007 um 11:38 Uhr
huhu,

pass uff ich kugg heut abend mal wenn ich zeit hab.
dann mach das mit dem access.log glei mit...

mfg
Bitte warten ..
Mitglied: LordMoorhuhn
17.04.2007 um 14:12 Uhr
spitze! Dankeeee!!!!
Geb mir mal paar Ideen wie ich mich revanchieren könnte
Bitte warten ..
Mitglied: 6890
17.04.2007 um 14:45 Uhr
spitze! Dankeeee!!!!
Geb mir mal paar Ideen wie ich mich
revanchieren könnte

Wuahahhaha also:

  • Audi A6 3.0 TDI Quattro S-Line (schwarz) oder
  • Suzuki GSX 600 R (Matt-Schwarz)
  • Nixon "The Ceramic Player" oder
  • Es Koston 3 schwarz-rot oder
  • und und und

hoffe das warn genug ideen für den anfang
Bitte warten ..
Mitglied: LordMoorhuhn
18.04.2007 um 09:42 Uhr
ich schau mal was unsere Schwarzgeldkonten hergeben ;)
Bitte warten ..
Mitglied: 6890
23.04.2007 um 19:32 Uhr
hi,

sach ma was mir grad auffällt...

wenn du ne feste zuweisung von zb kb37228 ==> user1 usw machst, isses eigentlich nich mehr annonymisiert

is ja im endeffekt dann nur ein alias...

so setzt mich jetzt ma an die anderen sachen...

mfg
Bitte warten ..
Mitglied: 6890
23.04.2007 um 19:57 Uhr
sooo...

is das drinne was de wolltest:
01.
#!/usr/bin/perl 
02.
 
03.
use strict; 
04.
use warnings; 
05.
 
06.
my %user = ( "kb37133" => "user1", 
07.
             "kb37144" => "user2", ); 
08.
           # und immer so weiter ... 
09.
           # musste halt so für alle eintragen 
10.
 
11.
# hier liegen die logfiles in dem dir... 
12.
my $logdir = "/home/mydir/logs"; 
13.
my $increment = 1; 
14.
my @logfile; 
15.
 
16.
opendir(LOGDIR,"$logdir") || die "$!"; 
17.
foreach(readdir(LOGDIR)) { 
18.
     if($_ =~ m/access.log/gi) { 
19.
        open(LOGFILE,"<$logdir/$_") || die "$!"; 
20.
        @logfile = <LOGFILE>; 
21.
        close(LOGFILE); 
22.
 
23.
        chomp(@logfile); 
24.
 
25.
        foreach my $logf (@logfile) { 
26.
            if($logf =~ m/(kb37\d{1,3})/ig) { 
27.
                my $cache = $1; 
28.
                $logf =~ s/$cache/$user{$cache}/gi if exists $user{$cache}; 
29.
30.
31.
 
32.
        open(LOGFILE,">$logdir/$_") || die "$!"; 
33.
        print LOGFILE join("\n", @logfile); 
34.
        close(LOGFILE); 
35.
36.
37.
closedir(LOGDIR); 
38.
exit(0);
is hoffe ich selbsterklärend ;-D

wenn fragen sind...

mfg
Bitte warten ..
Mitglied: LordMoorhuhn
24.04.2007 um 00:52 Uhr
Danke morgen glei probieren.

Es ist in dem sinne anoymisiert dass jemand andres nicht mehr sehen kann hinter welchem user welche person steckt. dass ich es weiß is klar.

Nochmal großes Danke!!!!
Bitte warten ..
Mitglied: LordMoorhuhn
28.04.2007 um 20:31 Uhr
Also ich bin mittlerweile nicht mehr da tätig aber habs meinem ehemaligen Chef gegeben. Der meint es würde klappen. Also ganz großes danke!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Erkennung und -Abwehr
Alternative zu MS NAP (4)

Frage von oce zum Thema Erkennung und -Abwehr ...

Multimedia
gelöst Alternative für Flickr gesucht (2)

Frage von honeybee zum Thema Multimedia ...

Notebook & Zubehör
Macbook-Pro-Alternative mit USB-C gesucht (3)

Frage von puerto zum Thema Notebook & Zubehör ...

Windows Server
Windows asynchrone Replikation - Alternative zu DoubleTake und DFS-R

Frage von Der-Phil zum Thema Windows Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...