Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Per Batch Dateigröße prüfen, Erreichung eines Schwellwerts per Mail melden

Anleitung Entwicklung Batch & Shell

Mitglied: Larz

Larz (Level 2) - Jetzt verbinden

24.09.2009 um 14:48 Uhr, 19637 Aufrufe, 5 Kommentare, 2 Danke

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)

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.
EXIT
Gruß
Larz
Mitglied: Alex1989
25.09.2009 um 08:52 Uhr
Nettes Script, vielleicht nicht nur für eine Datei, sondern für nen ganzen Ordner (wie häufig kommt es vor, dass man hört "ich hab nur kurz mit der Maus...und der Ordner ist in irgendeinem unterordner...)

Gruß,

Alex
Bitte warten ..
Mitglied: vodomohua
19.10.2009 um 09:49 Uhr
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.
Bitte warten ..
Mitglied: Ma-Admin
05.11.2009 um 11:38 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>
Bitte warten ..
Mitglied: Larz
13.11.2009 um 18:24 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:

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.
EXIT
Passt das so?

Gruß
Larz
Bitte warten ..
Mitglied: Ma-Admin
21.01.2010 um 14:43 Uhr
Hallo,

entschuldige meine späte Antwort

Ja das Script ist perfekt, so wollte ich es haben ! Funktioniert 1A !
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Mittels Batch jede Zeile einer Textdatei prüfen (4)

Frage von Peter32 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch um mehrere IP-Adressen via Ping auf Erreichbarkeit zu prüfen (5)

Frage von Galindiesel zum Thema Batch & Shell ...

E-Mail
gelöst Mail Spam fremde IP (10)

Frage von BerndP zum Thema E-Mail ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...