nevermind123
Goto Top

Momentanes Datum mit Datum aus Log File vergleichen und auf Bedingung löschen

hallo leute,

ich habe ein problem und hoffe jmnd kann mir weiter helfen, hier mal ein bisschen beschreibung:

ein server führt eine datensicherung durch, und speichert daraufhin in einem logfile einen bestätigungsstring mit datum/uhrzeit, wenn die datensciherung erfolgreich durchgeführt wurde.

nun habe ich einen ordner mit dateien, der auf vollzogener datensicherung geleert werden soll.

vorgestellt hab ich mir das folgendermaßen: timestamp im logfile und momentanes datum/uhrzeit wird verglichen..sagen wir um 23uhr jeden abend führt der server die datensicherung durch, und um 9uhr wird die batch datei jeden morgen ausgeführt, wird überprüft, ob in den letzten 10 std ein string gespeichert wurde. daraufhin kann der ordner geleert werden, findet die batch datei ncihts, wird nichts gemacht.

habe mir das ganze ein bisschen einfacher vorgestellt, komme aber nicht so wirklich in die batch geschichte rein. über suche konnte ich auch nichts genaues finden. würde mich freuen, wenn mir da jmnd weiter helfen könnte.

vielen dank im voraus!

gruß

Content-Key: 111115

Url: https://administrator.de/contentid/111115

Printed on: April 24, 2024 at 15:04 o'clock

Member: bastla
bastla Mar 14, 2009 at 16:08:08 (UTC)
Goto Top
Hallo nevermind123 und (etwas verspätet) willkommen im Forum!

Könntest Du bitte das Logfile (bzw speziell den "Bestätigungsstring") etwas genauer beschreiben?

Grüße
bastla
Member: nevermind123
nevermind123 Mar 16, 2009 at 15:11:12 (UTC)
Goto Top
hi,

hier mal ein string der datei:

bdzyhqct and 2009-02-17 16.04.31 0000-00-00 00.00.00 6 0.0000:0 27 0 0 2870 31587178 0 0 ALL online disk a--k-c 7.00 (38)


dort, wo "0000-00-00 00.00.00" steht, wird nach datensicherung der zeitpunkt festgehalten

vielen dank im voraus
Member: bastla
bastla Mar 16, 2009 at 18:31:03 (UTC)
Goto Top
Hallo nevermind123!

Weitere Fragen:
Wie ist dieser String innerhalb der Datei zu finden (immer gleiche Zeile, Erkennungsmerkmal)?
Geprüft werden soll also, ob der String existiert, und wenn ja, einen Zeitpunkt angibt, der weniger als 10 Stunden zurück liegt?

Grüße
bastla
Member: nevermind123
nevermind123 Mar 17, 2009 at 07:32:42 (UTC)
Goto Top
also es ist eine textdatei, die immer wieder den string von der neuen datensicherung hinten heran hängt..sprich:

1. zeile: 1. datensicherung
2. zeile: 2. datensicherung
3. zeile: 3. datensicherung
usw usw.

ich dachte er sucht einfach genau alle zeilen durch, und sucht das älteste datum? mit diesem vergleicht er das jetzige datum und checkt ob es länger als 10 stunden zurück liegt.

wäre sowas in der richtung möglich?

danke im voraus
Member: bastla
bastla Mar 17, 2009 at 07:55:33 (UTC)
Goto Top
Hallo nevermind123!

Wäre nicht eher das jüngste Datum zu suchen und dann zu prüfen, ob es innerhalb der letzten 10 Stunden liegt (zumindest, wenn tatsächlich ein fortlaufendes Log geführt wird, wäre das älteste Datum doch sicher älter als 10 Stunden)?

Wenn ja, müsste es genügen, die letzte Zeile zu betrachten (da ja immer am Ende angefügt wird) ...

Grüße
bastla
Member: nevermind123
nevermind123 Mar 17, 2009 at 08:02:17 (UTC)
Goto Top
ja richtig, habe mich da ein wenig fehlerhaft ausgedrückt :D

das jüngste natürlich!
Member: bastla
bastla Mar 17, 2009 at 17:48:10 (UTC)
Goto Top
Hallo nevermind123!

Etwas zum Testen:
@echo off & setlocal
set "Log=D:\Backups\log.txt"  
set "St=-10"  

set G=%temp%\GetTimeXHoursAgo.vbs
>%G%  echo Set a=WScript.Arguments:T=DateAdd("h",a(0),a(1))  
>>%G% echo WScript.Echo Mid(T,7,4)^&"-"^&Mid(T,4,2)^&"-"^&Left(T,2)^&Replace(Mid(T,11),":",".")  

for /f "usebackq tokens=5,6" %%i in ("%Log%") do set "ZeitBack=%%i %%j"  
for /f "delims=" %%i in ('cscript //nologo %G% %St% "%date% %time:~,8%"') do set "ZeitVergl=%%i"  

if "%ZeitBack%" gtr "%ZeitVergl%" echo Aktuelle Sicherung gefunden: %ZeitBack%  
Die gewünschte Stundenanzahl ist in Zeile 3 festzulegen, wobei für "vor 10 Stunden" ein negativer Wert zu verwenden ist.

Grüße
bastla