Top-Themen

Aktuelle Themen (A bis Z)

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 Änderungsdatum einer Datei prüfen und wenn älter als x Mail senden

Mitglied: Larz

Larz (Level 2) - Jetzt verbinden

08.05.2008, aktualisiert 13.05.2008, 9954 Aufrufe, 2 Kommentare

Hallo zusammen,

ich habe mir folgende Batch gebastelt, die eine Mail versendet wenn eine Datei entweder nicht vorhanden ist oder ihr Änderungsdatum älter als Heute -x

01.
REM Script zur Überprüfung des Änderungsdatums einer Datei. Ist das Datum 
02.
REM älter als Heute -x wird eine Mail versendet 
03.
REM ============================================= 
04.
 
05.
 
06.
REM Hier wird die Zieldatei definiert: 
07.
REM ---------------------------------- 
08.
SET Zieldatei=\\server\freigabe\datei.txt 
09.
REM Hier wird die Dauer in Tagen angegeben, innerhalb der eine Änderung  
10.
REM innerhalb dieser Datei stattgefunden haben muss: 
11.
SET LastModified=2 
12.
 
13.
 
14.
REM Hier werden die E-Mail-Parameter gesetzt: 
15.
REM ----------------------------------------- 
16.
SET Sender=you@here.de 
17.
SET Password=yourpassword 
18.
SET SMTPServer=smtp.provider.de 
19.
SET Recipient=you@here.de 
20.
 
21.
 
22.
 
23.
 
24.
REM Schreibe aktuelles Datum und Uhrzeit in Log >> log.txt 
25.
ECHO Aktuelles Datum: >> log.txt 
26.
Date /t	>> log.txt 
27.
ECHO ------------------ >> log.txt 
28.
Echo Aktuelle Uhrzeit: >> log.txt 
29.
Time /t >> log.txt 
30.
 
31.
REM Prüfung, ob die Datei existiert 
32.
IF NOT EXIST %Zieldatei% GOTO :FILEDOESNOTEXIST 
33.
 
34.
WasFile %Zieldatei% modified after today-%LastModified% >> log.txt 
35.
if not errorlevel 1 goto TRUE >> log.txt 
36.
 
37.
:LASTMODIFICATION >> log.txt 
38.
ECHO ==================================================================================== >> log.txt 
39.
ECHO Datei %Zieldatei% wurde innerhalb der letzten %LastModified% Tage nicht verändert, sende Mail >> log.txt 
40.
blat.exe -body "Die Datei %Zieldatei%  wurde innerhalb der letzten %LastModified% Tage nicht veraendert" -ps FOOTER.txt -to %Recipient% -subject "Letzte Aenderung zu lange her" -Server %SMTPServer% -f %Sender% -u %Sender% -pw %Password% >> log.txt 
41.
ECHO ==================================================================================== >> log.txt 
42.
EXIT 
43.
 
44.
:TRUE  
45.
ECHO ==================================================================================== >> log.txt 
46.
ECHO Datei wurde innerhalb der letzten zwei Tage geändert >> log.txt 
47.
ECHO ==================================================================================== >> log.txt 
48.
EXIT 
49.
 
50.
:ERROR 
51.
ECHO Datei nicht gefunden 
52.
EXIT 
53.
 
54.
:FILEDOESNOTEXIST 
55.
ECHO ==================================================================================== >> log.txt 
56.
ECHO Die Datei %Zieldatei% existiert nicht oder kann nicht aufgerufen werden, sende Mail >> log.txt 
57.
blat.exe -body "Die Datei %Zieldatei% existiert nicht oder konnte nicht erreicht werden!" -ps FOOTER.txt -to %Recipient% -subject "Datei nicht existent oder unerreichbar" -Server %SMTPServer% -f %Sender% -u %Sender% -pw %Password% >> log.txt 
58.
ECHO ==================================================================================== >> log.txt 
59.
EXIT 
60.
 
61.
 
Das funktioniert so lange gut, wie die Datei auch immer gleich heißt. Nun möchte ich aber Sicherungen einer SQL-Datenbank prüfen lassen, deren Dateiname jeweils aus dem Datenbanknamen, dem Sicherungsdatum und der Endung .bak bestehen.
Man könnte doch sicherlich den vorhandenen Dateinamen einlesen, zerhackstückeln und dann erst prüfen lassen...

Weiß jemand Rat?

Danke und Gruß
Larz
Mitglied: bastla
08.05.2008 um 18:50 Uhr
Hallo Larz!

Man könnte doch sicherlich den vorhandenen Dateinamen einlesen, zerhackstückeln und dann erst prüfen lassen...
Wozu "zerhackstückeln" - Du prüfst doch ohnehin nicht den Dateinamen, sondern das Änderungsdatum ...

Wenn es immer nur um eine Datei geht, könntest Du als Ersatz für Dein
01.
SET Zieldatei=\\server\freigabe\datei.txt
einfach ein
01.
for %%i in ("\\server\freigabe\*.bak") do set "Zieldatei=%%~fi"
verwenden und den Rest gleich lassen.

Sollten mehrere .bak-Dateien herumliegen, könntest Du die neueste davon suchen lassen:
01.
set "Pfad=\\server\freigabe" 
02.
for /f "delims=" %%i in ('dir /b /a-d /od "%Pfad%\*.bak"') do set "Zieldatei=%Pfad%\%%i"
Grüße
bastla
Bitte warten ..
Mitglied: Larz
13.05.2008 um 13:49 Uhr
Hallo bastla,

habe deinen zweiten Vorschlag eingebaut, mein Ergebnis sieht so aus und funktioniert einwandfrei:

01.
REM Script zur Überprüfung des Änderungsdatums einer Datei. Ist das Datum 
02.
REM älter als Heute -%Lastmodified% wird eine Mail versendet 
03.
REM ============================================= 
04.
 
05.
REM hier wird der zu prüfende Dateityp (nur Suffix, ohne *.) angegeben 
06.
REM ---------------------------------- 
07.
SET Filetype=bak 
08.
 
09.
REM Hier wird der Speicherort Zieldatei definiert: 
10.
REM ---------------------------------- 
11.
SET Pfad=\\server\freigabe 
12.
 
13.
FOR /f "delims=" %%i in ('dir /b /a-d /od "%Pfad%\*.%Filetype%"') do set "Zieldatei=%Pfad%\%%i" 
14.
 
15.
REM Hier wird die Dauer in Tagen angegeben, innerhalb der eine Änderung  
16.
REM der neuesten Datei dieses Typs im Verzeichnis stattgefunden haben muss: 
17.
REM ---------------------------------- 
18.
SET LastModified=2 
19.
 
20.
 
21.
REM Hier werden die E-Mail-Parameter gesetzt: 
22.
REM ----------------------------------------- 
23.
SET Sender=Sender@Mail-Domäne.de 
24.
SET Password=passwort 
25.
SET SMTPServer=smtp.Mail-Domäne.de 
26.
SET Recipient=Empfänger@Mail-Domäne.de 
27.
 
28.
 
29.
 
30.
 
31.
REM ============================================= 
32.
REM ============================================= 
33.
REM        AB HIER NICHTS MEHR VERÄNDERN! 
34.
REM ============================================= 
35.
REM ============================================= 
36.
 
37.
 
38.
REM Lösche vorletzte Log-Datei 
39.
DEL lastlog.txt 
40.
 
41.
REM Umbenennung letztes Log in vorletztes Log 
42.
REN log.txt lastlog.txt 
43.
 
44.
REM Schreibe aktuelles Datum und Uhrzeit in Log >> log.txt 
45.
ECHO Aktuelles Datum: >> log.txt 
46.
Date /t	>> log.txt 
47.
ECHO ------------------ >> log.txt 
48.
Echo Aktuelle Uhrzeit: >> log.txt 
49.
Time /t >> log.txt 
50.
 
51.
REM Prüfung, ob eine Datei dies definierten Typs dort existiert 
52.
IF NOT EXIST %Pfad%\*.%Filetype% GOTO :FILEDOESNOTEXIST 
53.
 
54.
WasFile %Zieldatei% modified after today-%LastModified% >> log.txt 
55.
if not errorlevel 1 goto TRUE >> log.txt 
56.
 
57.
:LASTMODIFICATION >> log.txt 
58.
ECHO ==================================================================================== >> log.txt 
59.
ECHO Datei %Zieldatei% wurde innerhalb der letzten %LastModified% Tage nicht verändert, sende Mail >> log.txt 
60.
blat.exe -body "Die Datei %Zieldatei%  wurde innerhalb der letzten %LastModified% Tage nicht veraendert" -ps FOOTER.txt -to %Recipient% -subject "Letzte Aenderung zu lange her" -Server %SMTPServer% -f %Sender% -u %Sender% -pw %Password% >> log.txt 
61.
ECHO ==================================================================================== >> log.txt 
62.
EXIT 
63.
 
64.
:TRUE  
65.
ECHO ==================================================================================== >> log.txt 
66.
ECHO %Zieldatei% wurde innerhalb der letzten %Lastmodified% Tage geändert >> log.txt 
67.
ECHO ==================================================================================== >> log.txt 
68.
EXIT 
69.
 
70.
:ERROR 
71.
ECHO Datei nicht gefunden 
72.
EXIT 
73.
 
74.
:FILEDOESNOTEXIST 
75.
ECHO ==================================================================================== >> log.txt 
76.
ECHO Eine *.%Filetype%-Datei existiert nicht oder kann nicht aufgerufen werden, sende Mail >> log.txt 
77.
blat.exe -body "Eine %Filetype%-Datei existiert nicht oder konnte nicht erreicht werden!" -ps FOOTER.txt -to %Recipient% -subject "Datei nicht existent oder unerreichbar" -Server %SMTPServer% -f %Sender% -u %Sender% -pw %Password% >> log.txt 
78.
ECHO ==================================================================================== >> log.txt 
79.
EXIT
Für Nachbauer - man benötigt im selben Verzeichnis noch die Dateien log.txt (aktuelles Log), lastlog.txt (vorletztes Log), footer.txt (Hier ist nur ein Hinweis auf den Author des Scripts drin), blat.exe (der Kommandozeilen-Mailer) und WasFile.exe (um das Änderungsdatum auszuwerten.

Grüße & Danke
Larz
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch : Wenn Erstellungsdatum und Änderungsdatum älter als x Tage, lösche Datei

gelöst Frage von Jack005Batch & Shell2 Kommentare

Hallo zusammen, ich weiß, dass es ähnliche Themen schon öfters gab. Ich habe mir auch wirklich so ziemlich alle, ...

Batch & Shell

Batch Änderungsdatum von Dateien vergleichen und ältere löschen

gelöst Frage von 129528Batch & Shell10 Kommentare

Hallo zusammen, ich habe schon andere Artikel und Foreneinträge zu diesem Thema (siehe Titel) gelesen, aber noch keine eindeutige ...

Windows Netzwerk

Dateien älter als X Jahre archivieren

Frage von ahussainWindows Netzwerk2 Kommentare

Hallo, mit robocopy kann man ja recht simpel Dateien, die älter als X Tage sind, automatisch in ein Archiv ...

Basic

VBS Script: Dateien älter als x Tage löschen

gelöst Frage von KnuefiBasic4 Kommentare

Hallo zusammen, ich habe eine Frage. Ich bin auf der Suche nach ein Script das Dateien älter als x ...

Neue Wissensbeiträge
Drucker und Scanner
HP-MF-Drucker per Fax angreifbsr
Information von Lochkartenstanzer vor 23 StundenDrucker und Scanner2 Kommentare

Endlich eine sinnvolle Verwendung für Faxe: Damit kann man offensichtlich den Drucker übernehmen. lks

Router & Routing

Das pfSense Buch ist jetzt für jeden kostenlos zu beziehen

Tipp von magicteddy vor 1 TagRouter & Routing2 Kommentare

Bisher war das Buch nur für zahlende Unterstützer verfügbar, jetzt steht für Jedermann kostenlos zur Verfügung. Siehe auch The ...

Firewall

Möglicherweise neue Sicherheitslücke in Mikrotik-Firmware

Information von LordGurke vor 3 TagenFirewall3 Kommentare

Hallo zusammen, vor ein paar Monaten gab es ja bereits eine Sicherheitslücke in der Firmware von Mikrotik-Routern, über welche ...

Erkennung und -Abwehr
Rechner hacken mit Cortana, auch Remote
Information von Lochkartenstanzer vor 4 TagenErkennung und -Abwehr3 Kommentare

heise berichtet über den Vortrag von der Blackhat Open Sesame: Picking Locks with Cortana. Einige Fehler sind schon gefixt, ...

Heiß diskutierte Inhalte
Windows Netzwerk
Performance bei Terminalserver
Frage von azizalexanderWindows Netzwerk20 Kommentare

Hallo zusammen, Ich wusste nicht in welches Thema meine Frage passt ich Bitte um Vergebung falls ich hier falsch ...

CPU, RAM, Mainboards
Xeon E5620: noch schnell genug?
Frage von ahussainCPU, RAM, Mainboards18 Kommentare

Hallo allerseits, ich habe die Möglichkeit, aus Restbeständen einen Tower mit Xeon E5620 CPU und 24 GB RAM zu ...

Exchange Server
Exchange 2013 - Unable to Relay nach extern, SuperMailer
Frage von leon123Exchange Server16 Kommentare

Hallo zusammen, ich brauch mal wieder eure Hilfe. Ich beschäftige mich gerade mit dem SuperMailer und erhalte vom Exchange ...

Windows Server
Remote Desktop Services User Profile Disk - DFS
Frage von einzelkindWindows Server16 Kommentare

Hallo Miteinander, ich richte gerade eine neue RDS Farm auf Basis von Windows Server 2016 ein. Von Server 2012 ...