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
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, 1184 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst BATCH Element aus XML-File auslesen (9)

Frage von pappkamerad zum Thema Batch & Shell ...

Windows Server
gelöst AD-User einer AD-Gruppe auslesen und in ein File schreiben (15)

Frage von Estefania zum Thema Windows Server ...

Microsoft Office
gelöst EXCEL Bedingte Formatierung wenn bestimmtes Jahr im Datum ist (6)

Frage von Hobi84 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
Suche passender Treiber (12)

Frage von stolli zum Thema Windows Server ...