Datum aus Datei auslesen und zwischenspeichern

K

kojack

Grünschnabel
Hallo,

bin in Sachen Shell ziemlicher Anfänger, benötige aber ein kleines Skript.

Und zwar soll es mir aus einer *.log alle Einträge mit aktuellem Datum suchen und diese Einträge dann zwischenspeichern, so das ich anschließend mit diesen logs im Skript weiter arbeiten kann, also mir bestimmt logs für ein Monitoring greppe etc.

Achso soll in einem CentOS funktionieren.

THX
 
Ohne den Aufbau der log-Datei zu kennen, kann man Deine Frage nicht beantworten. Am einfachsten ist es, wenn die Eintraege, die Du suchst, jeweils vollstaendig in einer Zeile enthalten sind. Dann erzeugst Du das Datumsformat, das Du benoetigst, mit 'date' und suchst danach, zum Beispiel bei so einer Datei:
Code:
tim@triton:~$ cat test.datei 
2010-11-25  gestern
2010-11-26  heute
2010-11-27  morgen
Code:
tim@triton:~$ DATE=$(date +%Y-%m-%d)
tim@triton:~$ grep $DATE test.datei
2010-11-26  heute
Die Ausgabe von grep kannst Du dann in eine Datei umleiten, um sie so weiterzuverarbeiten.
 
Ohne den Aufbau der log-Datei zu kennen, kann man Deine Frage nicht beantworten. Am einfachsten ist es, wenn die Eintraege, die Du suchst, jeweils vollstaendig in einer Zeile enthalten sind. Dann erzeugst Du das Datumsformat, das Du benoetigst, mit 'date' und suchst danach, zum Beispiel bei so einer Datei:
Code:
tim@triton:~$ cat test.datei 
2010-11-25  gestern
2010-11-26  heute
2010-11-27  morgen
Code:
tim@triton:~$ DATE=$(date +%Y-%m-%d)
tim@triton:~$ grep $DATE test.datei
2010-11-26  heute
Die Ausgabe von grep kannst Du dann in eine Datei umleiten, um sie so weiterzuverarbeiten.


24.11.2010 09:57:27 Action: Incremental
24.11.2010 09:57:27 Objects: /home/reoback/backups/
24.11.2010 09:57:27 Options:
24.11.2010 09:57:27 Server Window Start: 09:55:00 on 25.11.2010
24.11.2010 09:57:27 ------------------------------------------------------------
24.11.2010 09:57:27 Scheduler has been stopped.


so sehen die logs aus..also eigentlich super
 
das auslesen des datum funktioniert nicht und weiß nicht wie ich das ganze in einer variable etc abspeichere oder so.....

sorry, aber bin auf dem Gebiet absoluter neuling....
 
Ich bin mal so dreist zu behaupten, dass mein Vorschlag Dein Problem, so wie Du es dargestellt hast, vollstaendig beantwortet. Da Du vor weiteren Problemen stehst, muesstest Du das Problem bitte nochmal genau schildern, am besten wieder mit Beispielen, wie input und output aussehen sollen.
 
Format des Datums TT.MM.YYYY

Code:
grep $(date +%d.%m.%Y) <logdatei(en)>
 
ok habs hinbekommen ^^


so sah nochmal die Log aus

Code:
15.12.2010 09:55:03 Scheduler has been started by Dsmcad.
15.12.2010 09:55:03 Querying server for next scheduled event.
15.12.2010 09:55:03 Node Name: XXXXXXXXXXXXX
15.12.2010 09:55:03 Session established with server XXXXX: Solaris SPARC
15.12.2010 09:55:03   Server Version 5, Release 5, Level 3.0
15.12.2010 09:55:03   Server date/time: 24.11.2010 09:55:03  Last access: 23.11.2010 10:17:01

15.12.2010 09:55:03 --- SCHEDULEREC QUERY BEGIN
15.12.2010 09:55:03 --- SCHEDULEREC QUERY END
15.12.2010 09:55:03 Next operation scheduled:
15.12.2010 09:55:03 ------------------------------------------------------------
15.12.2010 09:55:03 Schedule Name:         XXXXXXXXXXXXXXXXXXXX
15.12.2010 09:55:03 Action:                Incremental
15.12.2010 09:55:03 Objects:                Ordnerpfad
15.12.2010 09:55:03 Options:
15.12.2010 09:55:03 Server Window Start:   09:55:00 on 24.11.2010
15.12.2010 09:55:03 ------------------------------------------------------------
15.12.2010 09:55:03Executing scheduled command now.
15.12.2010 09:55:03 --- SCHEDULEREC OBJECT BEGIN XXXXXXXXXXXXXXXXX 24.11.2010 09:55:00
15.12.2010 09:55:03 Incremental backup of volume 'Ordnerpfad'
15.12.2010 09:57:27 Successful incremental backup of 'Ordnerpfad'

15.12.2010 09:57:27 --- SCHEDULEREC STATUS BEGIN
15.12.2010 09:57:27 Total number of objects inspected:       25
15.12.2010 09:57:27 Total number of objects backed up:        2
15.12.2010 09:57:27 Total number of objects updated:          0
15.12.2010 09:57:27 Total number of objects rebound:          0
15.12.2010 09:57:27 Total number of objects deleted:          0
15.12.2010 09:57:27 Total number of objects expired:          0
15.12.2010 09:57:27 Total number of objects failed:           0
15.12.2010 09:57:27 Total number of bytes transferred:     5,50 GB
15.12.2010 09:57:27 Data transfer time:                  115,54 sec
15.12.2010 09:57:27 Network data transfer rate:        49.927,83 KB/sec
15.12.2010 09:57:27 Aggregate data transfer rate:      40.083,27 KB/sec
15.12.2010 09:57:27 Objects compressed by:                    0%
15.12.2010 09:57:27 Elapsed processing time:           00:02:23
15.12.2010 09:57:27 --- SCHEDULEREC STATUS END
15.12.2010 09:57:27 --- SCHEDULEREC OBJECT END XXXXXXXXXXXXXXXXX 24.11.2010 09:55:00
15.12.2010 09:57:27 Scheduled event 'XXXXXXXXXXXXXXXXXXXXX' completed successfully.
15.12.2010 09:57:27 Sending results for scheduled event 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'.
15.12.2010 09:57:27 Results sent to server for scheduled event 'XXXXXXXXXXXXXXXXXXXXXXXXXX'.
15.12.2010 09:57:27 ANS1483I Schedule log pruning started.
15.12.2010 09:57:27 ANS1484I Schedule log pruning finished successfully.
15.12.2010 09:57:27 Querying server for next scheduled event.
15.12.2010 09:57:27 Node Name: XXXXXXXXXXXXXXX
15.12.2010 09:57:27 Session established with server XXXXXXXXXX: Solaris SPARC
15.12.2010 09:57:27   Server Version 5, Release 5, Level 3.0
15.12.2010 09:57:27   Server date/time: 24.11.2010 09:57:27  Last access: 24.11.2010 09:55:04

15.12.2010 09:57:27 --- SCHEDULEREC QUERY BEGIN
15.12.2010 09:57:27 --- SCHEDULEREC QUERY END
15.12.2010 09:57:27 Next operation scheduled:
15.12.2010 09:57:27 ------------------------------------------------------------
15.12.2010 09:57:27 Schedule Name:         XXXXXXXXXXXXXXX
15.12.2010 09:57:27 Action:                Incremental
15.12.2010 09:57:27 Objects:                Ordnerpfad
15.12.2010 09:57:27 Options:
15.12.2010 09:57:27 Server Window Start:   09:55:00 on 25.11.2010
15.12.2010 09:57:27 ------------------------------------------------------------
15.12.2010 09:57:27 Scheduler has been stopped.

und die lösung

Code:
#!/bin/bash
#Check des Tivoli Update

datum=$(date +%d.%m.%Y)

declare -i backup=0
declare -a buffer
declare -i cnt=0

exec</tsm/client/base/tsmsched.log

while read line; do

        zeile=${line:0:10}
        if [ "$zeile" == "$datum" ]; then
                buffer[$cnt]=$line
                let cnt++
        fi
done

if [ -z "${buffer[0]}" ]; then

        echo "No Log today!?"

else
        for ((i=0 ; i <= $cnt ; i = i + 1)); do
                temp=${buffer[$i]}
                logzeile=${temp:20:26}

                if [ "$logzeile" == "Successful incremental bac" ]; then
                        let backup++
                fi
        done

                if [ "$backup" == 1 ]; then
                        echo "OK: Backup successful!"
                else
                        echo "Critical: Log exists, but no sucessful backup!?"

                fi


fi
 

Ähnliche Themen

.cfg Datei Analysieren und Zeilen Stellenweise abändern

CSV Datei mit sed manipulieren/optimieren/ergänzen

Last mit etc/passwd anzeigen lassen

Lokale GUI-Programme mit php-cgi starten

[Tcl / Shell] Ändern einer Datei per vi - Änderungsdatum einer Datei erfassen

Zurück
Oben