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, 10011 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
Perl

Mehrere E-Mail Empfänger in Send-Mail Perl-Skript

Frage von JordanPerl2 Kommentare

Hallo zusammen, ich hatte vorher noch keinen Kontakt mit Perl-Skripten. Nun möchte ich ein bestehendes Perl-Skript für das Versenden ...

Microsoft Office

"send as" Mail in Gesendete Elemente

Frage von narvisMicrosoft Office5 Kommentare

Hallo liebe Gemeinde, ich muss mich mal wieder vertrauensvoll an Euch wenden :-) Und zwar habe ich folgende Frage: ...

Exchange Server

"Send on Behalf anstelle" von "Send as"

gelöst Frage von arduinoExchange Server3 Kommentare

Hallo Wir haben auf unserem Exchange 2010 verschiedene Shared Mailboxen, die von Usern mit der Send-as Berechtigung genutzt werden. ...

Windows 8

"Send-Mail" mit Access 97 unter Windows 8.1 funktioniert nicht

Frage von markus-sinzigWindows 82 Kommentare

Hallo zusammen, wir benutzen bei uns bisher immer noch erfolgreich Access 97 für einige Datenbanken. Einige dieser Datenbanken lösen ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 20 StundenHumor (lol)2 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 1 TagErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 4 TageniOS5 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 5 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
SSD zeigt falsche Werte
Frage von karl2014Festplatten, SSD, Raid25 Kommentare

Ich habe ein Problem mit der SSD in meinem Laptop mit Windows 10. Es ist eine 1Tb Platte die ...

Windows Server
Welche Option fürs Windows Server Installations besser
Frage von backitWindows Server22 Kommentare

Hi Zusammen, ich werde unserer AD (SBS 2011) und Exchange 2010 Servern auf neuen physikalischen Server umziehen. ich habe ...

Ubuntu
Installation freerdp 2.0.0-rc4
Frage von kristovUbuntu20 Kommentare

Hallo, möchte freerdp 2.0.0-rc4 auf linux mint 18.3 installieren, habe aber keine Ahnung, wie das funktioniert. freerdp 1.1 ist ...

Windows Update
Fehler bei Updates über WSUS
Frage von Hendrik2586Windows Update19 Kommentare

Guten Tag liebe Kolleginen und Kollegen, lang lang ist meine letzte Anfrage her. Hier etwas das mich nun schon ...