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, 9969 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
Router & Routing

Endlich: Reines Kabel-TV Modem in D erhältlich !

Information von aqui vor 2 TagenRouter & Routing9 Kommentare

Mit dem Technicolor TC4400-EU Modem sind nun auch Breitband Router ohne integriertes Modem oder Firewalls wie z.B. die pfSense ...

Netzwerkgrundlagen
The Illustrated TLS Connection
Information von Lochkartenstanzer vor 3 TagenNetzwerkgrundlagen

Moin, Unter findet man eine gelungene Erläuterung von TLS. Fördert sehr das verständnis darüber, was da passiert. lks

Windows 10

Zuverlässiger Remove-AppxProvisionedPackage Ausführen in W10-1803

Tipp von NetzwerkDude vor 4 TagenWindows 104 Kommentare

Moin, Remove-AppxProvisionedPackage hat in 1709 recht zuverlässig funktioniert, in 1803 ist es leider so das es gerne mail failed ...

LAN, WAN, Wireless
Erfahrung mit dem tplink eap115-wall
Erfahrungsbericht von fisi-pjm vor 4 TagenLAN, WAN, Wireless

Die Hintergründe Als ausgebildeter Fisi und ambitionierter "Hobby ITler" bin ich Netzwerktechnisch immer auf der Suche nach "schönen" Lösungen ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
OpenVPN auf dem Client Verständnisfrage
gelöst Frage von bk900042Netzwerkprotokolle23 Kommentare

Hallo Community, möchte OpenVPN benutzen, um mich über VPN per RDP zu einem Server zu verbinden und auch GIT ...

Windows Server
AD User wird immer wieder gesperrt
Frage von YellowcakeWindows Server14 Kommentare

Hey ich habe einen User (ein GL User - Natürlich was denn sonst) der immer wieder gesperrt wird. Ich ...

Netzwerkmanagement
Netzwerklaufwerk verbinden nicht möglich
gelöst Frage von SteiniMNetzwerkmanagement13 Kommentare

Hallo Leute, ich bin neu hier und brauche eure Hilfe. Danke schon mal im Voraus. Ich habe folgendes Problem: ...

Switche und Hubs
OpenSource oder Freeware zur Verwaltung von Switchen
Frage von JonskezSwitche und Hubs12 Kommentare

Hallo, gibt eine kostenlose Verwaltungssoftware für Switche (überwiegend HP/Aruba)? Es sollte möglich sein, aus der Ferne z.B. die Firmware ...