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

BASH: Logfile nach enthaltenem Datum auswerten?

Mitglied: Brennerlein

Brennerlein (Level 1) - Jetzt verbinden

29.08.2013 um 13:50 Uhr, 3148 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: 108012
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
Bash sqlplus oder Bash Fehler?
Frage von MarabuntaBatch & Shell7 Kommentare

Hallo, da ich sehr eingeschränkt in Bash bin, brauche ich hier etwas Hilfe. Was stimmt mit dem EOF nicht? ...

Ubuntu
Bash - Scriptsteuerung
gelöst Frage von rsadmchefUbuntu3 Kommentare

Hallo Leute, Es geht um folgendes auf meinem Desktop: ( Lubuntu 14.04 LTS ) Aktuell läuft ein Userscript sc1 ...

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
Bash Mail senden
gelöst Frage von MarabuntaBatch & Shell7 Kommentare

Hallo, ich versuche eine einfache Mail mittels Bash zu verschicken. Die mailbody.txt ist leer. Auch mit sinnvollen Parametern kann ...

Neue Wissensbeiträge
Humor (lol)
Preisvertipper
Information von Dilbert-MD vor 2 TagenHumor (lol)7 Kommentare

Moin! weil heute Freitag ist, zeige ich Euch den Preisvertipper der Woche: vergesst den Acer Predator 21x, der ist ...

Windows Update
Sicherheitsupdate für SQL Server 2014 SP3
Information von sabines vor 3 TagenWindows Update2 Kommentare

Für den SQL Server 2014 existiert ein Sicherheitsupdate. Laut KB Artikel wird es als CU3 angezeigt: Server 2014 SP3 ...

Backup

Veeam Agent für MS Windows - neue Version verfügbar (bedingt jedoch offenbar .NET Framework 4.6)

Information von VGem-e vor 4 TagenBackup1 Kommentar

Moin Kollegen, einer unserer Server zeigte grad an, dass für o.g. Software ein Update verfügbar ist. Ob ein evtl. ...

Python

Sie meinen es ja nur gut - Microsoft hilft python-Entwicklern auf unnachahmliche Weise

Information von DerWoWusste vor 5 TagenPython2 Kommentare

Stellt Euch vor, Ihr nutzt python unter Windows 10 und skriptet damit regelmäßig Dinge. Nach dem Update auf Windows ...

Heiß diskutierte Inhalte
Cloud-Dienste
MS Sharepoint generelle Frage zur Einrichtung
Frage von ralf86Cloud-Dienste15 Kommentare

Hallo, ich will den Sharepoint als FileServer nutzen. Hier sollen mehrere Freigabeordner mit unterschiedlichen Berechtigungen erstellt werden z.B. Geschäftsführung ...

Netzwerkmanagement
Windows Domain und vlan
Frage von mustangberlinNetzwerkmanagement10 Kommentare

Guten Tag liebe Community, mein Kollege und ich haben uns an das Thema vlan und die Gruppierung/Strukturierung unseres Netzwerkes ...

Router & Routing
FritzBox und SynologyNAS VPN
Frage von ndeedyRouter & Routing8 Kommentare

Moin moin. Irgendwie habe ich entweder ein bescheuertes Setup, oder mir bereits komplett die Birne mit Versuchen durchgebraten. Bin ...

Outlook & Mail
Outlook 2016: Schrift der Ordnerspalte verkleinern
Frage von usercrashOutlook & Mail7 Kommentare

Hallo, wie/wo kann man in MS Outlook 2016 im Ordnerbereich am linken Bildrand die Schriften, die Überschriften und den ...