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

BASH: Logfile nach enthaltenem Datum auswerten?

Frage Entwicklung Batch & Shell

Mitglied: Brennerlein

Brennerlein (Level 1) - Jetzt verbinden

29.08.2013 um 13:50 Uhr, 2585 Aufrufe, 7 Kommentare

Hallo an alle,

Ich habe ein Logfile welches ca. alle 5 Minuten mit einer neuen Zeile befüllt wird. Das Log sieht so aus (Auschnitt):

2013-08-23_14:07:31 CUL_EM_6 CNT: 36 CUM: 1835.982 5MIN: 0.280 TOP: 0.480
2013-08-23_14:17:31 CUL_EM_6 CNT: 38 CUM: 1836.046 5MIN: 0.380 TOP: 0.470
2013-08-23_14:22:31 CUL_EM_6 CNT: 39 CUM: 1836.080 5MIN: 0.410 TOP: 0.480
2013-08-23_14:22:31 CUL_EM_6 CNT: 39 CUM: 1836.080 5MIN: 0.410 TOP: 0.480
2013-08-23_14:32:31 CUL_EM_6 CNT: 41 CUM: 1836.152 5MIN: 0.450 TOP: 0.610
2013-08-23_14:37:31 CUL_EM_6 CNT: 42 CUM: 1836.200 5MIN: 0.580 TOP: 0.660
2013-08-23_14:42:31 CUL_EM_6 CNT: 43 CUM: 1836.241 5MIN: 0.490 TOP: 0.610
2013-08-23_14:47:31 CUL_EM_6 CNT: 44 CUM: 1836.284 5MIN: 0.510 TOP: 0.570
2013-08-23_14:52:31 CUL_EM_6 CNT: 45 CUM: 1836.315 5MIN: 0.370 TOP: 0.560
2013-08-23_14:57:31 CUL_EM_6 CNT: 46 CUM: 1836.363 5MIN: 0.570 TOP: 0.680
2013-08-23_15:02:31 CUL_EM_6 CNT: 47 CUM: 1836.389 5MIN: 0.320 TOP: 0.660
2013-08-23_15:07:31 CUL_EM_6 CNT: 48 CUM: 1836.413 5MIN: 0.290 TOP: 0.450
2013-08-23_15:12:31 CUL_EM_6 CNT: 49 CUM: 1836.465 5MIN: 0.620 TOP: 0.710
2013-08-23_15:17:31 CUL_EM_6 CNT: 50 CUM: 1836.518 5MIN: 0.640 TOP: 0.700

Relevant ist für mich der CUM Wert. Das ist ein Zählerstand der sich ständig erhöht.
Ich möchte nun gerne den Verbrauch der letzten Stunde, des letzten Tages, Monat und Jahr ermitteln.

Zur Zeit behelfe ich mir damit (z.B. für den Stundenwert) einfach den aktuellsten CUM Wert auszucutten und die zwölfte Zeile davor (1h=60Min; 60Min/5Min=12) ebenfalls den CUM Wert rauszucutten und aus diesen dann die Differenz zu ermitteln.

Ihr werdet jetzt wahrscheinlich die Hände über den Kopf zusammenschlagen, aber ich weiß mir nicht anders zu helfen.
Das eigentliche Problem bei meiner Methode sind fehlende Datenpakete. Wenn der Empfänger ein Paket nicht mitbekommt, wird auch nicht im Log geschrieben. Das kommt häufig vor. Mit meiner Methode kommen dann natürlich zu große Differenzen zu stande weil ich ja dann, wie im Beispiel, nicht die Differenz von 1h habe sondern eben auch mal von 1h15min. Bei den Tages/Monats/Jahresberechnung ist der Wert dann schon enorm falsch.

Aus diesem Grund würde ich gerne den Timestamp nutzen, habe aber keine Ahnung wie ich das mit einem Bashscript hinbekomme.
Mitglied: 106543
29.08.2013 um 14:06 Uhr
Hi,

Batch hat keine Funktionen zur Datumsbrechnung, ich kann dir von daher nur VBS empfehlen.
Davon hab ich zwar selbst keine Ahnung, aber @colinardo könnte hier helfen

Grüße
Exze
Bitte warten ..
Mitglied: Brennerlein
29.08.2013 um 14:11 Uhr
Zitat von 106543:
Hi,

Batch hat keine Funktionen zur Datumsbrechnung, ich kann dir von daher nur VBS empfehlen.


Batch? Wie kommste da drauf? Ich brauche es in der Linux Bash/Shell
Bitte warten ..
Mitglied: 106543
29.08.2013 um 14:12 Uhr
Hi,

ah sorry verlesen :D
da kann ich dir leider trotzdem nicht weiterhelfen

Grüße
Exze
Bitte warten ..
Mitglied: Snowman25
29.08.2013, aktualisiert um 14:16 Uhr
Hallo Brennerlein,

So wie dein Beispiel-File aussieht, gibt es ja wohl keinen "Lag" in dem System (wodurchein Timestamp 15:05:59 und der nächste 15:11:00 wäre). Deshalb solltest du mit grep und awk glücklich werden können.
Ich bin über folgendes gestolpert: Zeitdifferenz in bash berechnen ~ StackOverflow

Hier mal ein Beispielskript, welches ich geschrieben habe, um die Quotas auf unserem Mailserver zu berechnen:
01.
#!/bin/csh 
02.
set HEADS=quotaheads.num 
03.
set BOTTOMS=quotabottoms.num 
04.
 
05.
if ( `id -u` != 0) then 
06.
        echo "This script must be run as root!" 
07.
else 
08.
        cd /var/imap/quota 
09.
        foreach i ( */* ) 
10.
                head -n 1 $i>>$HEADS 
11.
                tail -n 1 $i>>$BOTTOMS 
12.
        end 
13.
 
14.
        echo "Total used:" 
15.
                awk 'BEGIN{a=0}{a+=$1}END{a/=1073741824;print a " GB"}' $HEADS 
16.
        echo "Total allocated:" 
17.
                awk 'BEGIN{a=0}{a+=$1}END{a/=1048576;print a " GB"}' $BOTTOMS 
18.
        rm $HEADS 
19.
        rm $BOTTOMS 
20.
endif
Hoffentlich hilft das, dir AWK besser verständlich zu machen. Es ist relativ kompliziert, sich in AWK einzuarbeiten.
1073741824 und 1048576 sind bloß Umrechungsfaktoren und nicht von weiterer Bedeutung.

Gruß,
Snowman25
Bitte warten ..
Mitglied: Brennerlein
29.08.2013 um 14:34 Uhr
Da hast du mir ja einige Ansätze aufgezeigt.

Ich bin gerade auf einen zusätzlichen Gedanken gekommen.

Könnte man nicht über einen cron Job jede Stunde, jeden Tag, jede Woche, jedes Jahr, ein Script anstoßen welches den CUM Wert in eine Datei schreibt. Dann hätte ich ja quasi zwei Werte die ich nur noch subtrahieren müsste und das Timing wird dem OS überlassen.

Könnte das funktionieren?
Bitte warten ..
Mitglied: Dobby
29.08.2013 um 14:54 Uhr
Hallo,

Könnte das funktionieren?
Ja sicher wenn;
- Wenn Du anacron dafür nimmst ist es sogar ohne booten möglich!
- wenn alle beteiligten die selbe Uhrzeit haben
- wenn die Uhrzeit richtig ist

Aber man kann ja auch zwei ShellScripte laufen lassen!

Eines das immer nachschaut welches Datum und welche Uhrzeit gerade ist und dann gegebenenfalls das andere Script startet
und Dir zum Schluss eine Mail an den den Systemverwalter namens root oder an Dein echtes Postfach schickt!

Gruß
Dobby
Bitte warten ..
Mitglied: Brennerlein
29.08.2013 um 16:23 Uhr
Danke für die bisherigen Tipps,

ich werd mal schauen was ich daraus machen kann!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateien umbennen und verschieben mit bash (3)

Frage von sbsnewbie zum Thema Batch & Shell ...

Windows Server
Powershell logfile nach Datei suchen (2)

Frage von krischeu zum Thema Windows Server ...

Batch & Shell
gelöst Batch soll an einem bestimmten Datum eine Website öffnen (3)

Frage von Yanmai zum Thema Batch & Shell ...

Batch & Shell
gelöst LogFile splitten (7)

Frage von MuHMuH zum Thema Batch & Shell ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (16)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...