darkangel2k3
Goto Top

Überprüfen ob bestimmte Dateien geschrieben wurden, die nur älter 1 Tag sind!

Hallo liebe Gemeinde,

ich bin's mal wieder und benötige Hilfe von euch =)
Da ich schon unzählige Stunden suche und probiere - nicht verstehe - und langsam verzweifel =( wenn's so weiter geht, muss ich schon in Tage zählen)

Ich habe schon einiges versucht, aber ich komme nicht drauf, was ich machen muss.

Ich möchte drei Ordner überwachen, die unterschiedliche Inhalte schreiben.

>d:\test1\
>unterordner1
>unterordner2
>unterordner3

alle Dateien in den Unterordnern, die die Endung .zip haben - Aufbau %ZZZZZZZZ%_JJJJMMTTSSMMSS_logs.zip z.B. 12345678_20130101121212_logs.zip

>d:\test2\ (keine Unterordner)

alle die mit txt enden und %festername%_JJJJMMTTSSMMSS.txt heißen z.B. test_20130101121212.txt oder sicherung_20130101121212.txt

>d:\test3\ (keine Unterordner)

alle die mit txt enden. Aufbau der Datei: %festername%_%ZZZZZZZZ%_JJJJMMTTSSMMSS.txt heißen z.B. XX01_12345678_20130101121212.txt

Nun zur Aufgabe:

Jeden Tag werden unteschiedlich viele Dateien in den jeweiligen 3 Pfaden abgelegt. Im Pfad 1 werden zusätzlich nur Unterordnerabgelegt, wo dann die zip-Dateien reinsortiert werden.

Ich möchte gerne, dass nur überprüft wurde, ob in den drei unterschiedlichen Pfaden eine Datei des genannten oberen Typs abgelegt wurde. Bei Pfad 1 muss nicht jeder Unterordner überprüft werden, es reicht, wenn der gewünschte Datei Typ einmal geschrieben wurde.

Die Überprüfung soll immer zum Vortag erfolgen. Sprich, das Script soll gucken, ob gestern was geschrieben wurde und zwar nur gestern.

Anschließend soll es dann eine log Datei erstellen und mit dem Tool "blat" per SMTP eine Nachricht aussenden, mit der Fehleranmeldung an ausgewählte Personen.

In diesem Fall ist egal, ob man mit den Windows Timestamp oder den Timestamp des Dateinamens rechnet. Die sollten jetzt identisch sein. Es soll auch nicht auf die Stunde genau gerechnet werden.

Es soll nur überprüft werden, wenn z.B. heute der 28.02. ist, ob am 27.02. irgendwann die drei Ordner mit korrekten Daten befüllt wurden.

Mit
forfiles /P /%pfade% /S /M *.zip /D -1 /C "cmd /c echo @path 
bekomme ich nur angezeigt, was alles älter ist 1 Tag.

dir /s/a-d /pfade\*.zip
gibt mir die Dateien mit Windows Timestamp aus.

 @echo off & setlocal 
set "Basis=D:\Test1\"   
 
for /f "tokens=1-3 delims=." %%i in ("%date%") do set /a Jahr=%%k & set /a Monat=1%%j & set /a Tag=1%%i   
set /a TSJahr=Jahr 
set /a TSMonat=Monat
set /a Tagalt= 1
if %TSMonat% leq 100 (set /a TSJahr-=1 & set /a TSMonat+=12) 
set "TS=%TSJahr%%TSMonat:~-2%%Tag:~-2%"   
set /a TSneu=TS - Tagalt
11.for /f "delims=" %%i in ('dir /s/b/a-d "%Pfade%*.zip"') do for /f "tokens=2 delims=_" %%a in ("%%~ni") do if "%%a" lss "%TSneu%" echo "%%i"   


Das letzte ist ein Script, wo mir bastla geholfen hat, ich hab's ein bisschen angepasst. Zeigt mir aber auch alles was einen Tag älter ist an und nicht nur, was am letzten Tag geschrieben wurde. Außerdem habe ich Probleme, wenn der 01. jeden Monats ist - da rutsch dann die Berechnung auf null.

Ich bin da extreme verwirrt und hoffe, dass mir hier jemand vielleicht helfen kann.

Eigentlich ja simpel ^^ einfach Auswerten der von gestern geschrieben Dateien mit if exist abgeglichen und ggfs. mit blat eine E-Mail versenden - bloß ich kann's nicht =(
Weiß einfach nicht, wie ich weitermachen muss.

Sind alle Windows Server 2003 R2 Kisten. Es sollen aber keine extra Tools oder vbs eingesetzt werden.

Grüße

Content-ID: 202536

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

Ausgedruckt am: 22.11.2024 um 20:11 Uhr