Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Bestimmtes Datum von einem file auslesen - Linux

Frage Entwicklung Batch & Shell

Mitglied: lapvika

lapvika (Level 1) - Jetzt verbinden

03.09.2014, aktualisiert 04.09.2014, 1270 Aufrufe, 9 Kommentare

Hallo zusammen,

ich möchte mir in Linux aus der /var/log/messages Dateiinhalte der letzten 24 Stunden anzeigen lassen, alles was davor in die Datei geschrieben wurde möchte ich nicht sehen.

Beispiel:

ich habe eine Datei in der steht

Aug 24 09:41:54 hier steht text 1
Aug 26 13:06:08 hier steht text 2
Sep 2 03:04:26 hier steht text 3
Sep 2 03:04:33 hier steht text 4
Sep 2 03:08:41 hier steht text 5
Sep 2 12:41:43 hier steht text 6
Sep 2 12:43:33 hier steht text 7

Ich benötige jedoch nur die Dateiinhalte der letzten 24 Stunden, also dass man mit date das aktuelle Datum ausliest und sich dann die letzten 24 Stunden ausgeben lässt und der Rest nicht mehr zu sehen ist.

Beispielsweise ist es Sep 3 12:44 Uhr, dann sollte die Ausgabe so aussehen:

Sep 2 12:41:43 hier steht text 6
Sep 2 12:43:33 hier steht text 7

Wenn es Sep 3 13:00 Uhr ist soll die Ausgabe leer sein also nichts zu sehen sein.

Ich habe es schon hiermit versucht

grep `(date +"%b %d %H:" -d "24hours ago")` /var/log/messages

jedoch funktioniert es damit nicht.

Kennt jemand die Lösung meines Problems?

Vielen Dank schon mal!





Mitglied: Lochkartenstanzer
03.09.2014, aktualisiert um 14:50 Uhr
Moin,

das funktioniert so mit grep nicht. Du müßtest ein Skript oder Programm schreiben, daß die logdateie einliest, die einträge am zeilenende interpretiert und dann diese ausgibt, falls die neuer sind als das gewünschte Datum.


Wenn es allerdings ab Mitternacht des Vortages auch geht, ist es einfacher:

grep  "^`date -d yesterday \"+%b %_d\"`" /var/log/syslog ; grep  "^`date \"+%b %_d\"`" /var/log/syslog
lks
Bitte warten ..
Mitglied: lapvika
03.09.2014, aktualisiert um 15:08 Uhr
Hallo, danke erst einmal.

Ich muss dazu sagen, dass ich da noch ein Anfänger in diesem Bereich bin ich bin gerade dabei mich einzuarbeiten.

Wie funktioniert das ganze für ein Zeitintervall, beispielsweise 5 Minuten. Also das alles was innerhalb der letzten 5 Minuten in die messages geschrieben wurde angezeigt wird, alles was älter als 5 Minuten ist nicht mit angezeigt wird?

Vielen Dank!
Bitte warten ..
Mitglied: Lochkartenstanzer
03.09.2014 um 15:10 Uhr
Zitat von lapvika:

Wie funktioniert das ganze für ein Zeitintervall, beispielsweise 5 Minuten. Also das alles was innerhalb der letzten 5
Minuten in die messages geschrieben wurde angezeigt wird, alles was älter als 5 Minuten ist nicht mit angezeigt wird?


wie ich schon sagte: Du mußt die Daten am anfang der zeile einlesen udn interpretieren. durch einfaches grep funktioniert das nicht.

lks
Bitte warten ..
Mitglied: lapvika
03.09.2014 um 15:18 Uhr
Ok,

und wie genau macht man sowas?

Vielen Dank!
Bitte warten ..
Mitglied: Lochkartenstanzer
03.09.2014, aktualisiert um 15:23 Uhr
Zitat von lapvika:

Ok,

und wie genau macht man sowas?


Indem man ein prgramm schreibt, daß aus Monat, tag und Uhrzeit eine Zahl macht, die man dann mit dem refenrzdatum vergleicht.

Alternativ kann man auch sukzessive Monat, tag, Stunde, Minute, und sekunde vergleichen, ist aber meist aufwendiger zu formulieren.

lks
Bitte warten ..
Mitglied: lapvika
03.09.2014 um 15:25 Uhr
"Indem man ein prgramm schreibt, daß aus Monat, tag und Uhrzeit eine Zahl macht, die man dann mit dem refenrzdatum vergleicht."


Wie genau sieht so etwas aus?

Wie gesagt ich bin da noch ganz frisch in der Materie.

Danke für die Hilfe!
Bitte warten ..
Mitglied: colinardo
LÖSUNG 03.09.2014, aktualisiert 04.09.2014
Moin,
Zitat von lapvika:
Wie genau sieht so etwas aus?
z.B. so:
01.
#!/bin/bash 
02.
date1=$(date '+%s') 
03.
date2=$(date -d "24 hours ago" '+%s') 
04.
while read line 
05.
do 
06.
    line_date_sec=$(date -d "$(echo "$line" | awk '{print $1,$2,$3}')" '+%s') 
07.
    if [[ $date2 -le $line_date_sec && $date1 -ge $line_date_sec ]];then 
08.
    	echo "$line" 
09.
    fi 
10.
done < /var/log/messages
Grüße Uwe
Bitte warten ..
Mitglied: Lochkartenstanzer
03.09.2014 um 15:56 Uhr
Zitat von lapvika:

Wie genau sieht so etwas aus?

Siehe uwes Skript.

Wie gesagt ich bin da noch ganz frisch in der Materie.

Dann soltest Du anfangen, dich damit zu beschäftigen:

http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

lks
Bitte warten ..
Mitglied: lapvika
04.09.2014 um 07:42 Uhr
Vielen Dank Uwe,

hast mir sehr geholfen.

Gruß
lapvika
Bitte warten ..
Ähnliche Inhalte
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 Batch für File extension überprüfung und listenerstellungmit Zeit und Datum (2)

Frage von watch123 zum Thema Batch & Shell ...

Batch & Shell
gelöst In txt file an bestimmter Position zeichen ersetzen, Ideen ? (7)

Frage von buliwyf zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(8)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

Information von BassFishFox zum Thema Datenschutz ...

Firewall

PfSense OpenVPN beschleunigen

Tipp von Dobby zum Thema Firewall ...

Utilities

CCleaner 5.33 mit Malware infiziert

(27)

Information von SeaStorm zum Thema Utilities ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (27)

Information von SeaStorm zum Thema Utilities ...

Festplatten, SSD, Raid
gelöst Problem mit DELL 815R Server und Windows Bluescreen (24)

Frage von Leo-le zum Thema Festplatten, SSD, Raid ...

Windows Systemdateien
Windows bootet nicht mehr Fehlermeldung 0xc0000098 (19)

Frage von franzgoerlich zum Thema Windows Systemdateien ...

Windows Netzwerk
Dateien mit Intelligenz per GPO ins Programmverzeichnis (14)

Frage von erwin.t zum Thema Windows Netzwerk ...