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, 2952 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? ...

Batch & Shell
Bash scripting
gelöst Frage von HighShooterBatch & Shell3 Kommentare

Hallo, für meinem Server auf Debian 8 soll ich einen Script schreiben; der sollte folgendes beinhalten: eine Datei von ...

Batch & Shell

PS - RegEx: Logfile mit aktuellem Datum filtern + Mehrere Pfade unter einer Variable

gelöst Frage von ParaneusBatch & Shell5 Kommentare

Hallo Zusammen Ich habe ein Powershell Skript in dem ich Logfiles kopiere. Nun möchte ich nur das neuste Logfile ...

Netzwerke

SFlows auswerten

Frage von cgicloudNetzwerke2 Kommentare

Hallo zusammen, bin gerade am Einrichten von sFlows. Das Einsammeln und Ausgeben der Flows an sich funktioniert problemlos. Allerdings ...

Neue Wissensbeiträge
Ausbildung

Linux-Ausstieg in Niedersachsen - Windows statt Bugfix

Information von StefanKittel vor 2 TagenAusbildung35 Kommentare

Sind ja nur Steuergelder

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 4 TagenSpeicherkarten5 Kommentare

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 4 TagenSicherheit1 Kommentar

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 5 TagenHardware4 Kommentare

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Passwortwechsel Zeitpunkt festlegen
Frage von Looser27Windows Userverwaltung27 Kommentare

Guten Morgen liebe Kolleginnen und Kollegen, da es eine Userin in meinem Urlaub geschafft hat, sich vom AD vollständig ...

Windows Server
Probleme im AD am Außenstandort
gelöst Frage von emeriksWindows Server19 Kommentare

Hi, wir haben ein Problem mit AD und GPO am Außenstandort und ich stehe momentan mächtig auf dem Schlauch. ...

Switche und Hubs
POE-Switche
gelöst Frage von MiStSwitche und Hubs13 Kommentare

Guten Morgen, ich überlege ob ich in unserem Netzwerk die aktuellen Switche (D-LINK DGS-1210-28) durch PoE-Switche ersetzen soll. Der ...

Windows Server
DNS - Bedingte Weiterleitung
gelöst Frage von m8ichaelWindows Server11 Kommentare

Guten Tag zusammen, ich stehe gerade bzgl. einer bedingten DNS-Weiterleitung etwas auf dem Schlauch: Ich möchte, dass für bestimmte ...