Per Batch Dateigröße prüfen, Erreichung eines Schwellwerts per Mail melden
24.09.2009
14:48:59 Uhr9907 Aufrufe
5 Antworten
14:48:59 Uhr
5 Antworten
Hilfreich +2
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...
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 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)
01.
REM Definiere Variablen für Umlaute zur korrekten Darstellung (ASCII/ANSI Problem) 02.
REM Die Mail soll ja in korrektem Deutsch erfolgen 03.
REM --------------------------------------------------------------------------------------- 04.
chcp 1252>nul 05.
set ue=ü 06.
set ae=ä 07.
set oe=ö 08.
set Uue=Ü 09.
set Aae=Ä 10.
set Ooe=Ö 11.
set ss=ß 12.
chcp 850>nul 13.
14.
REM Hier werden zunächst die zu überwachende Datei und der Schwellwert definiert: 15.
REM --------------------------------------------------------------------------------------- 16.
SET Zieldatei=c:\log.txt 17.
SET Schwellwert_in_Byte=1048576 18.
19.
REM Hier werden die E-Mail-Parameter gesetzt, für die 20.
REM Benachrichtigung bei Überschreitung 21.
REM --------------------------------------------------------------------------------------- 22.
SET Sender=Sender@Domain.com 23.
SET Password=geheim 24.
SET SMTPServer=smtp.server.de 25.
SET Recipient=empfänger@Domain.com 26.
27.
REM Wenn es die Datei nicht gibt, wird ein Mail an den Admin geschickt 28.
REM --------------------------------------------------------------------------------------- 29.
IF NOT EXIST %Zieldatei% GOTO :FILEDOESNOTEXIST 30.
31.
REM Prüfung, ob die Datei größer als Wert X ist 32.
REM Wenn nein, Abbruch der Batch 33.
REM --------------------------------------------------------------------------------------- 34.
for /f %%i in ("%Zieldatei%") do if %%~zi GTR %Schwellwert_in_Byte% goto FILESIZEEXCEED 35.
EXIT 36.
37.
:FILEDOESNOTEXIST 38.
REM E-Mail an den Admin schicken, dass die Datei "plötzlich" weg ist :-) 39.
REM --------------------------------------------------------------------------------------- 40.
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 41.
EXIT 42.
43.
:FILESIZEEXCEED 44.
REM E-Mail an den Admin senden, dass die Datei zu groß ist 45.
REM --------------------------------------------------------------------------------------- 46.
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% 47.
EXITGruß
Larz
Ma-Admin schreibt am 05.11.2009 um 11:38:25 Uhr
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
<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>
Larz schreibt am 13.11.2009 um 18:24:08 Uhr
Hallo Ma-Admin,
ich glaube mit Batch geht das nicht. Bastla hat da aber mal was mit nem temporären VB-Script produziert, ich kopiere und ergänze mal:
Passt das so?
Gruß
Larz
ich glaube mit Batch geht das nicht. Bastla hat da aber mal was mit nem temporären VB-Script produziert, ich kopiere und ergänze mal:
01.
@echo off & setlocal 02.
REM Variablen für Umlaute deklarieren 03.
chcp 1252>nul 04.
set ue=ü&& set ae=ä&& set oe=ö&& set Uue=Ü&& set Aae=Ä&& set Ooe=Ö&& set ss=ß 05.
chcp 850>nul 06.
07.
REM Variablen für Zielordner, Schwellwert und temporäres VB-Script deklarieren 08.
set Schwellwert_in_MB=10 09.
set "Zielordner=%userprofile%\Desktop" 10.
set "FS=%temp%\GetFolderSize.vbs 11.
12.
:DoAction 13.
echo WScript.Echo Int(CreateObject("Scripting.FileSystemObject").GetFolder(WScript.Arguments(0)).Size/1024/1024+.99)>%FS% 14.
for /f %%i in ('cscript //nologo %FS% "%Zielordner%"') do set OGr=%%i 15.
del %FS% 16.
IF %OGr% GTR %Schwellwert_in_MB% GOTO FolderSizeExceed 17.
18.
:FolderSizeNotExceed 19.
cls 20.
title Gr%oe%%ss%e nicht %ue%berschritten 21.
color 2F 22.
cls 23.
@echo. 24.
@echo. 25.
@echo. 26.
@echo ===================================================== 27.
@echo Maximale Gr%oe%%ss%e des Ordners von %Schwellwert_in_MB% MB 28.
@echo wurde nicht %ue%berschritten - alles ok 29.
@echo ===================================================== 30.
@echo. 31.
@echo. 32.
@echo. 33.
pause 34.
EXIT 35.
36.
37.
:FolderSizeExceed 38.
cls 39.
title Gr%oe%%ss%e wurde %ue%berschritten! 40.
color 4F 41.
cls 42.
@echo. 43.
@echo. 44.
@echo. 45.
@echo ======================================================= 46.
@echo Maximale Gr%oe%%ss%e des Ordners wurde %ue%berschritten! 47.
@echo Die maximal zugelassene Gr%oe%%ss%e betr%ae%gt %Schwellwert_in_MB% MB! 48.
@echo Bitte l%oe%schen Sie nicht mehr ben%oe%tigte Dateien 49.
@echo ======================================================= 50.
@echo. 51.
@echo. 52.
@echo. 53.
pause 54.
EXITPasst das so?
Gruß
Larz









