Per Batch Dateigröße prüfen, Erreichung eines Schwellwerts per Mail melden
Möchte man das Datenwachstum einer Datei überwachen, so gibt es sicherlich eine Menge Tools.
Das ganze lässt sich aber auch mit Bordmitteln und dem Tool blat.exe lösen...
Ausgangssituation
Das Wachstum einer Protokolldatei (oder einer x-beliebigen Datei) soll überwacht werden. Wird die Datei zu groß, erhält der Admin eine Benachrichtigung.
Benötigt
- Batch-Datei Check_Filesize.bat (neu zu erstellen)
- Kommandozeilen-E-Mailer "blat.exe" (http://www.blat.net)
Gruß
Larz
Das ganze lässt sich aber auch mit Bordmitteln und dem Tool blat.exe lösen...
Ausgangssituation
Das Wachstum einer Protokolldatei (oder einer x-beliebigen Datei) soll überwacht werden. Wird die Datei zu groß, erhält der Admin eine Benachrichtigung.
Benötigt
- Batch-Datei Check_Filesize.bat (neu zu erstellen)
- Kommandozeilen-E-Mailer "blat.exe" (http://www.blat.net)
REM Definiere Variablen für Umlaute zur korrekten Darstellung (ASCII/ANSI Problem)
REM Die Mail soll ja in korrektem Deutsch erfolgen
REM ---------------------------------------------------------------------------------------
chcp 1252>nul
set ue=ü
set ae=ä
set oe=ö
set Uue=Ü
set Aae=Ä
set Ooe=Ö
set ss=ß
chcp 850>nul
REM Hier werden zunächst die zu überwachende Datei und der Schwellwert definiert:
REM ---------------------------------------------------------------------------------------
SET Zieldatei=c:\log.txt
SET Schwellwert_in_Byte=1048576
REM Hier werden die E-Mail-Parameter gesetzt, für die
REM Benachrichtigung bei Überschreitung
REM ---------------------------------------------------------------------------------------
SET Sender=Sender@Domain.com
SET Password=geheim
SET SMTPServer=smtp.server.de
SET Recipient=empfänger@Domain.com
REM Wenn es die Datei nicht gibt, wird ein Mail an den Admin geschickt
REM ---------------------------------------------------------------------------------------
IF NOT EXIST %Zieldatei% GOTO :FILEDOESNOTEXIST
REM Prüfung, ob die Datei größer als Wert X ist
REM Wenn nein, Abbruch der Batch
REM ---------------------------------------------------------------------------------------
for /f %%i in ("%Zieldatei%") do if %%~zi GTR %Schwellwert_in_Byte% goto FILESIZEEXCEED
EXIT
:FILEDOESNOTEXIST
REM E-Mail an den Admin schicken, dass die Datei "plötzlich" weg ist :-)
REM ---------------------------------------------------------------------------------------
blat.exe -body "Die Datei %Zieldatei% existiert nicht oder konnte nicht erreicht werden!" -to %Recipient% -subject "Datei nicht existent oder unerreichbar" -Server %SMTPServer% -f %Sender% -u %Sender% -pw %Password% >> log.txt
EXIT
:FILESIZEEXCEED
REM E-Mail an den Admin senden, dass die Datei zu groß ist
REM ---------------------------------------------------------------------------------------
blat.exe -body "Die Datei %Zieldatei% hat den vorgegebenden Schwellwert von %Schwellwert_in_Byte% Byte %ue%berschritten!" -to %Recipient% -subject "Dateigr%oe%%ss%e hat Schwellwert %ue%berschritten!" -Server %SMTPServer% -f %Sender% -u %Sender% -pw %Password%
EXIT
Gruß
Larz
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 125715
Url: https://administrator.de/contentid/125715
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
5 Kommentare
Neuester Kommentar
Tolles Script!
Werde mal ein wenig damit spielen und schauen, ob ich nicht automatisch die größen der Mailfiles damit überwachen kann. Ordnergrößen wären natürlich auch was feines.
Werde mal ein wenig damit spielen und schauen, ob ich nicht automatisch die größen der Mailfiles damit überwachen kann. Ordnergrößen wären natürlich auch was feines.
Hallo,
danke für das tolle Script ! Ich hab es versucht für meine Bedürfnisse zu vereinfachen und umzuschreiben, leider geht das nicht ganz so wie ich es gerne hätte
Mein Ziel ist es:
Der (Ordner)Desktop soll auf seine Größe überprüft werden und wenn es größer als 10MB ist soll eine Meldung beim Benutzer aufpoppen.
Hier mein Script Vll. kann mir jmd. helfen !
<ANFANG>
@echo OFF
SET Zieldatei="c:\dokumente und einstellungen\%username%\desktop\"
SET Schwellwert_in_Byte=1048670
for /f %%i in ("%Zieldatei%") do if %%~zi GTR %Schwellwert_in_Byte% goto FILESIZEEXCEED
EXIT
:FILESIZEEXCEED
echo
echo * IHR DESKTOP IST ZU GROSS *
echo
echo * BITTE LOESCHEN SIE NICHT *
echo
echo * BENOETIGTE DATEIEN *
echo
PAUSE
<ENDE>
danke für das tolle Script ! Ich hab es versucht für meine Bedürfnisse zu vereinfachen und umzuschreiben, leider geht das nicht ganz so wie ich es gerne hätte
Mein Ziel ist es:
Der (Ordner)Desktop soll auf seine Größe überprüft werden und wenn es größer als 10MB ist soll eine Meldung beim Benutzer aufpoppen.
Hier mein Script Vll. kann mir jmd. helfen !
<ANFANG>
@echo OFF
SET Zieldatei="c:\dokumente und einstellungen\%username%\desktop\"
SET Schwellwert_in_Byte=1048670
for /f %%i in ("%Zieldatei%") do if %%~zi GTR %Schwellwert_in_Byte% goto FILESIZEEXCEED
EXIT
:FILESIZEEXCEED
echo
echo * IHR DESKTOP IST ZU GROSS *
echo
echo * BITTE LOESCHEN SIE NICHT *
echo
echo * BENOETIGTE DATEIEN *
echo
PAUSE
<ENDE>