Top-Themen

Aktuelle Themen (A bis Z)

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, 5090 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 ..
Ähnliche Inhalte
Linux Tools
Bash sed: Umlaute
Frage von plutowitschLinux Tools2 Kommentare

Hallo, ich hoffe jemand kann mir hier helfen. Ich versuche einen String dahingehend zu manipulieren, dass ich alles vor ...

Batch & Shell
Logdateien bereinigen mit sed
gelöst Frage von cuilsterBatch & Shell12 Kommentare

Hallo. Ich versuche log Dateien mittels sed Befehl zu bereinigen. Ziel ist es erstmal alle Zeilen zu löschen in ...

Batch & Shell
SED Abfrageergebnis in Variable schreiben
gelöst Frage von BloodyRulzBatch & Shell4 Kommentare

Hallo, kann mir jemand sagen, wie ich eine SED Abfrage in eine Batchvariable schreibe. Ich möchte praktisch foglendes erreichen: ...

Batch & Shell
SED Sonderzeichen maskieren klappt nicht.
gelöst Frage von BloodyRulzBatch & Shell5 Kommentare

Hallo zusammen, ich hoffe Ihr könnt mir helfen. System: Windows Folgendes Problem: Ich habe eine Konfigdatei von einem Router. ...

Neue Wissensbeiträge
Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 3 StundenVerschlüsselung & Zertifikate

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 14 StundenWindows 102 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 16 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner3 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen13 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...