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, 1261 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 Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (19)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
IP Adressen - Modem - Switch - Accesspoint (17)

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

Windows 10
Programm Installation bei Win 10 Fehlerhaft (13)

Frage von Keineahnungvonnix zum Thema Windows 10 ...