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

Datei auslesen mit wert aus einer liste vergleichen und wegschreiben

Mitglied: obacht

obacht (Level 1) - Jetzt verbinden

19.03.2012, aktualisiert 25.03.2012, 3044 Aufrufe, 7 Kommentare

Hallo zusammen,
ich versuche zeilenweise aus eine Datei die im Zugriff durch eine DB ist den letzten Eintag auszulesen und mit den Werten in suche-1 zu vergleichen, bei übereinstimmung die ganze Zeile in eine Datei zuschreiben. Sollte ich nicht lieber mit dem diesen Befehl bei einer geöffnet Datei arebiten , wenn die Datei bereits im Zugriff ist?

OpenAsTextStream([IOMode As IOMode = ForReading], [Format As Tristate = TristateFalse]) As Textstream

Grüße

01.
# Start-FileSystemWatcher der Powershell  
02.
import-module FileSystem 
03.
get-help Start-FileSystemWatcher  
04.
 
05.
set suche-1= (importfile; exportfile; DB02; error;) 
06.
 
07.
# String durchsuchen 
08.
$Pattern="suche1" 
09.
$LineCounter=0 
10.
$NumberOfLines=$(get-content -path "D:\db02.log").count 
11.
 
12.
Get-Content -path "D:\db02.log" -Wait | ForEach{ 
13.
 $LineCounter+=1 
14.
 If(($_ -match $Pattern) -and ($Linecounter -gt $NumberOfLines)){ 
15.
  
16.
Set-Content "d:\tag_meldungen.txt" -Value "$_"  
17.
 # in Datei schreiben 
18.
19.
}
[Edit Biber] Codeformatierung [/Edit]
Mitglied: 5t8d1e
20.03.2012 um 12:01 Uhr
Hallo,

also wenn ich es richtig verstanden habe suchst du ungefähr sowas:
01.
$pattern = "suche1" 
02.
get-content -wait D:\db02.log | where { $_ -match $pattern } | out-file -append d:\tag_meldungen.txt
wie immer bei mir quick and dirty

grüße
Torsten
Bitte warten ..
Mitglied: obacht
20.03.2012 um 21:29 Uhr
Hallo Thorsten,
diese Lösung ist besser als das was ich bisher habe, meine Lösung ist drei mal so lang werde mich an deiner Lösung orientieren.

Ich hänge aber gerader an einer anderen Stelle und zwar möchte ich den String in eine dynamisches Array einlesen und das 3 Arrayfeld (3 Absatz in der Zeile) mit einer Fehlerliste vergleichen.
In etwas so:

$pattern = "C:/Liste.txt" # Eine Liste mit diversen Fehlercodes und evenID siehe Beispiel unten
$Event_ID=" "
$Event_ID=" "

get-content -wait D:\db02.log | where { $_ -match $pattern } While ($StreamReader.Endofstream -eq $False){
$Line=$StreamReader.ReadLine( Write-Eventlog -logname 'DB02' -source 'work' -eventID $Event_ID -EntryType $_EntryType -message "$Line" )
}

Der Eintrag soll dann im Eventlog DB02 unter Windows zu finden sein.. leider schaffe ich es nicht den String richtig zu erzeugen / übergeben um im Array das 3 Feld mit der Liste vergleichen zu können. Was mach ich falsch?

Beispiel für die Fehlercode Liste in C./Liste.txt die je Treffer in die Variablen geschrieben werden ($Event_ID=" "; $Event_ID=" ")
ERRORCODE EventID EntryType
1. aeg45244S; 1252; error
2. jhhff56616L; 1000; warning
3. 456sgsv55K 2011 error
usw.
Bitte warten ..
Mitglied: 5t8d1e
21.03.2012 um 10:38 Uhr
ahoi,

Leider komme ich nicht mit deiner Erklärung nicht ganz klar. am besten schickst du mal 3-4 zeilen aus deinen logfile und 3-4 zeilen aus deiner Fehlercodeliste.
Und damit ich weiss wie das Ergebnis aussehen auch hier 1-2 Beispiele. Danach schauen wir mal was daraus gebastelt werden kann.

der Torsten ohne 'h'
Bitte warten ..
Mitglied: obacht
21.03.2012 um 15:21 Uhr
Ziel ist es das Log DB02.log in Echtzeit zu überwachen:

DB02.log Logdatei sieht so aus:
z.B.

22/03/2012 11:00:18 00255B313I Server is up
22/03/2012 11:00:18 045688G52I Object loaded.
23/03/2012 11:10:22 001CM027E Error. Cluster NGZ04
23/03/2012 11:42:22 0055TS528E Authentication failure from Printstation: 192.168.110.1
(Fehlercode)

Jeder Logeintrag der in das DB02.log geschrieben wird soll sofort auf Fehlercode, welcher in der Fehlematrix hinterlegt ist geprüft werden.


Fehlermatrix:

Fehlercode; EventID; Aktion (bei 1 wir ins Eventlog geschrieben bei 0 wird kein Eintrag geschrieben und der String verworfen.)

00255B313I; 0; 0
021CD02PW; 0; 0
001CM027E ; 9993; 1

Bei 1 wir ins Eventlog geschrieben bei 0 wird kein Eintrag geschrieben und der String verworfen.)

Kommt der Fehlercode in der Fehlermatrix vor und ist mit der 1 im dritten Feld gekennzeichnet, nur dann schreibe einen Eintrag in das Applikation-Eventlog von Microsoft Server.

Der Logeintrag soll die EvntID aus der Fehlermatrix enthalten und als Message den gesamten String (z. B. - 23/03/2012 11:10:22 001CM027E Error. Cluster NGZ04) enthalten.

Falls du noch weiter Informationen brauchst bitte melden.
Viele Grüße
Bitte warten ..
Mitglied: 5t8d1e
23.03.2012 um 08:55 Uhr
Ahoi obacht,


ich gugge mir das mal am WE an und dann schauen wir mal was bei rum.

Ansonsten Happy WE

der Torsten
Bitte warten ..
Mitglied: 5t8d1e
24.03.2012 um 18:11 Uhr
Ich bins wieder!

so das hier sollte funkitionieren
den Debugbereich kannst auskommentieren und das Script direkt mit den Parametern aufrufen

Bsp.: .\get-db2errors.ps1 -Fehlerliste .\known-errors.csv -DB2log .\db2.log -outfile .\errors.log

01.
Param ( 
02.
[string]$Fehlerliste, 
03.
[string]$DB2log, 
04.
[string]$outfile 
05.
06.
 
07.
###Debug### 
08.
[string]$Fehlerliste = "E:\tmp\get-DB2Errors\known-errors.csv" 
09.
[string]$DB2log = "E:\tmp\get-DB2Errors\db2.log" 
10.
[string]$outfile = "E:\tmp\get-DB2Errors\errors.log" 
11.
########### 
12.
 
13.
#import Fehlerliste 
14.
[array]$knownErrors = Import-Csv $Fehlerliste -Delimiter ";" 
15.
 
16.
Get-Content $db2log -wait | Foreach {  
17.
    $DB2Logerror = ($_.split(' '))[2] 
18.
    #$DB2Logerror 
19.
    $mymatch = $knownErrors -match $DB2Logerror | select Aktion 
20.
    if ($mymatch.Aktion -eq 1) { $_ | Out-File -FilePath $outfile -Append} 
21.
}
und nun ab ins WE
der Torsten

ps.: die csv sollte wie folgt aussehen
01.
Fehlercode;EventID;Aktion 
02.
00255B313I;0;0 
03.
021CD02PW;0;0 
04.
001CM027E;9993;1
Bitte warten ..
Mitglied: obacht
30.03.2012 um 12:23 Uhr
Hallo Torsten,
ich konnte mich leider nicht früher melden, die Lösung hat mir sehr geholfen, Danke.

Aktuell kämpfe ich mit folgender Fehlermeldung in der PS:

Write-EventLog : Cannot bind parameter 'EntryType'. Cannot convert value "C" to type "System.Diagnostics.EventLogEntryT
ype". Error: "Invalid cast from 'System.Char' to 'System.Diagnostics.EventLogEntryType'."


Meine Fehlermatrix.csv sieht so aus:
Fehlercode;EventID;EntryType;Aktion
VEP0501CE;VEP0501CE;Warning;1

Ich wollte den Fehlercode im Eventlog als EventID angeben.

welche Art von Platzhalter brauche ich bei dem Befehl Write-EventLog ?

Viele Grüße
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Powershell: Wert aus Registry auslesen und mit vorhandenem Wert vergleichen

gelöst Frage von BrowserlauserBatch & Shell5 Kommentare

Hallo, ich stehe vor folgendem Problem: Ich möchte per Powershell aus der Registry einen bestimmten Wert auslesen. Beispiel: in ...

Batch & Shell

Zwei Werte vergleichen in einer Batch-Datei

gelöst Frage von PatrickHeissi10Batch & Shell1 Kommentar

Ich möchte die beiden Variablen %eins% und %zwei% vergleichen haben diese den gleichen Wert haben-> goto einszwei Danke

Microsoft Office

Excel Werte vergleichen

Frage von 103148Microsoft Office5 Kommentare

Hallo, ich habe eine Liste ( ca. 200 Einträge ) mit Kistengröße wie folgt: Länge, Breite, Höhe daneben wird ...

Batch & Shell

Batch: In Quelldatei Wert aus Liste ersetzen und Datei speichern unter

gelöst Frage von MTB4everBatch & Shell2 Kommentare

Hallo, ich habe folgendes vor: Ich habe eine Quell Datei z.B. 0000.csv in dieser Datei steht in Zeile 1 ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 2 TagenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 3 TagenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 3 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 3 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement19 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen17 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

Google Android
Empfehlung: Android Ortungsapp
gelöst Frage von certifiedit.netGoogle Android13 Kommentare

Guten Morgen, grundsätzlich vorweg, ich wollte mich eben schlau machen, bzgl einer Ortungsapp, welche Androidbasiert einem anderen Androidsmartphone mitteilt, ...

Router & Routing
VPN hinter zweiter Fritzbox nutzen im Nachbarhaus
gelöst Frage von georg2204Router & Routing11 Kommentare

Hallo zusammen, ich blicke hier leider nicht mehr so ganz durch. In Haus 1 steht eine Fritzbox 7390, diese ...