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 Unbekannten Wert via Batch aus Datei auslesen und verwenden

Mitglied: Entlein

Entlein (Level 1) - Jetzt verbinden

30.12.2008, aktualisiert 09:37 Uhr, 4811 Aufrufe, 10 Kommentare

Guten Morgen,

ich bin zur Zeit etwas unbeholfen beim schreiben, ein gewaltiges Brett vor dem Kopf, welches nicht wanken will, daher hoffe ich auf eure Hilfe, nun zu dem Problem:

Ich bin auf der Suche gewesen nach einer Möglichkeit den freien Speicherplatz auf einem Serverlaufwerk zu ermitteln und diesen mit einem Wert abzugleichen, bei einem Schwellenwert sollte dann eine E-Mail versendet werden mit:
Warnung auf E ist zu wenig Speicher verfügbar.

Anhand von diesem Topic:
https://www.administrator.de/index.php?content=71571

hatte ich die Idee eine Abfrage zu gestallten, jedoch tue ich mich schwer damit dieses auch wirklich funktionierend zu gestalten.

01.
 psinfo \\srvd\ -d  >test.txt 
Soweit so gut, bis dahin hatte es auch gut funktioniert, die Datei sieht dann soweit gut aus.
Jedoch brauche ich ja nur das letztere Laufwerk:
01.
Volume Type       Format     Label                      Size       Free   Free 
02.
    A: Removable                                                          0.0% 
03.
    C: Fixed      NTFS                              10.00 GB    3.42 GB  34.2% 
04.
    D: Fixed      NTFS                              14.98 GB   10.70 GB  71.5% 
05.
    E: Fixed      NTFS       Volume                130.01 GB    6.58 GB   5.1% 
06.
    F: CD-ROM                                                             0.0%
Das Relevante Laufwerk ist dann:
01.
 E: Fixed      NTFS       Volume                130.01 GB    6.58 GB   5.1%
Dieses bekomme ich noch nicht extrahiert

Und dort sollte dann bei dem Unterschreiten von 2GB beim freien Speicher, dann eine E-Mail versand werden.

Ich habe mich dann auch schon mal daran versucht, mit allen Laufwerken soweit weiter zu machen und den Scripten aus dem anderen Thread, eine Ausgabe hinzubekommen die nur den freien Speicher (in GB) als Wert liefert

01.
@echo off & setlocal  
02.
for /f "delims=" %%a in ('findstr /c:" GB " \test.txt') do set "Line=%%a" & call :ProcessLine  
03.
goto :eof  
04.
 
05.
:ProcessLine  
06.
set /a Free=%Line:~-6,3%  
07.
echo %Free%
Und hierbei verstehe ich noch nicht ganz die Syntax, aber ich hoffe auf dem richtigen Weg zu sein
Jedoch habe ich, wenn ich versuche es abzuwandeln, entweder:

Fehlender Operator, oder 0 als Ausgabewert.

Ich hoffe ihr könnt mir so kurz vor dem neuen Jahr noch helfen.

Dank im vorraus

---Edit---
Ein Brett ist verschwunden und mit mir geht es Berg auf, der letztere Teil ist schonmal bearbeitet und liefert nur noch die Werte die ich Suche:
01.
@echo off & setlocal  
02.
for /f "delims=" %%a in ('findstr /c:" GB " \test.txt') do set "Line=%%a" & call :ProcessLine  
03.
goto :eof  
04.
 
05.
:ProcessLine  
06.
set /a Free=%Line:~-15,2%  
07.
echo %Free%
Nun sollte ich die in eine Variable packen und abgleichen mittels einer Abfrage. Darauf die mail versenden und dann kann das neue Jahr losgehen

--to be continued--
Mitglied: miniversum
30.12.2008 um 11:45 Uhr
Hier mal die erweiterung dazu:
01.
@echo off & setlocal  
02.
for /f "delims=" %%a in ('findstr /c:" GB " \test.txt') do set "Line=%%a" & call :ProcessLine  
03.
 
04.
if %Free% gtr 2 blat ... 
05.
goto :eof  
06.
 
07.
:ProcessLine  
08.
set /a Free=%Line:~-15,2%  
09.
echo %Free%
blat ... ist der aufruf des Programmes blat.exe. Dieses kann emails versenden. Die genauen Parameter kanst du auf der internetseite zum Programm sehen oder schau hier im Bereich Batch udn Shell. Hier wurde dieses Programm schon öfters besprochen.
Bitte warten ..
Mitglied: bastla
30.12.2008 um 22:07 Uhr
Hallo Entlein und willkommen im Forum, hallo miniversum!

Auf Basis Eurer Entwürfe sollte (zur Vorsicht auch unter Berücksichtigung der angegebenen Einheit - es könnten ja zB nur noch 800 MB frei sein) - und mit alleiniger Berücksichtigung des Laufwerkes E: etwa folgende Version klappen:
01.
@echo off & setlocal 
02.
set "Min=2" 
03.
 
04.
set Line= 
05.
for /f "delims=" %%a in ('findstr /c:"E: Fixed" \test.txt') do set "Line=%%a"  
06.
if not defined Line echo Keine Info fuer LW E: gefunden! & REM sinnvolle Aktion 
07.
 
08.
set Mail= 
09.
for /f "tokens=1-3 delims=. " %%i in ("%Line:~-18,11%") do ( 
10.
    set "Frei=%%i,%%j" 
11.
    set "Einh=%%k" 
12.
    if "%%k" neq "GB" set Mail=true 
13.
    if %%i lss %Min% set Mail=true 
14.
15.
if defined Mail echo Nur mehr %Frei% %Einh% frei! --^> blat ...
Für den Fall, dass die Zeile für das Laufwerk E: nicht gefunden würde, wäre noch eine sinnvolle Aktion zu überlegen.
Vielleicht wäre auch die Verwendung des ohenhin zur Verfügung stehenden Prozentsatzes an freiem Speicher eine brauchbare Alternative (dadurch könnte die Unterscheidung nach Einheiten entfallen) ...

Grüße
bastla
Bitte warten ..
Mitglied: miniversum
31.12.2008 um 11:31 Uhr
Kann es seind as da ein kleiner Fehler in der Zeile 15 ist?
So würde ja eine Mail kommen wenn noch platz frei ist. Gemeint war denke ich so, oder?
01.
if not defined Mail echo Nur mehr %Frei% %Einh% frei! --^> blat ...
Bitte warten ..
Mitglied: bastla
31.12.2008 um 12:28 Uhr
@miniversum
Kann es seind as da ein kleiner Fehler in der Zeile 15 ist?
Das würde ich für meine Batches nie a priori ausschließen wollen, allerdings:

Gemeint (und geschrieben ) ist: Wenn %Mail% existiert, dann soll eine Mail verschickt werden.

%Mail% ist nur gesetzt, wenn die Einheit nicht "GB" ist ("TB" scheiden in diesem konkreten Fall ja als Möglichkeit aus) oder wenn der ganzzahlige Anteil des freien Speichers (%%i) unter dem Wert %Min% liegt (lss %Min%) ...

Grüße
bastla
Bitte warten ..
Mitglied: miniversum
31.12.2008 um 13:20 Uhr
Ja so habe ich dienen Code auch verstanden. Allerdings würde dann ja eine Mail verschickt werden wenn der Schwellwert unterschritten ist und nicht überschritten. Ich verstehe es so das eine Mail nur geschickt werden soll wenn zu wenig Speicher frei ist, also der Grenzwert überschritten wird. Daher mein Einwand.
Bitte warten ..
Mitglied: bastla
31.12.2008 um 13:44 Uhr
@miniversum

Da mit dem Schwellwert für mich eigentlich die Untergrenze des (benötigten / gewünschten) freien Speicherplatzes gemeint ist, sehe ich keine Notwendigkeit, bei "Nicht-Unterschreitung" dieser Untergrenze eine Mail zu verschicken (und der von Entlein verwendeten Formulierung "... bei dem Unterschreiten von 2GB beim freien Speicher ..." würde ich diese auch nicht entnehmen) ...

Grüße
bastla
Bitte warten ..
Mitglied: miniversum
31.12.2008 um 13:56 Uhr
Nein da hast Du mich jetzt falsch verstanden.
Die Ausgabe liefert ja den Wert wieviel Speicher belegt ist, nicht wieviel noch frei ist.
Also müßte die Warn-e-mail kommen wenn der Wert überschritten, nicht unterschritten wird.
Bitte warten ..
Mitglied: bastla
31.12.2008 um 14:47 Uhr
Die Ausgabe liefert ja den Wert wieviel Speicher belegt ist, nicht wieviel noch frei ist.
Du meinst, ich hätte "Free" falsch übersetzt?
Bitte warten ..
Mitglied: miniversum
31.12.2008 um 14:57 Uhr
Ups...
Ich hatte nru auf den als relevant geposteten teil geachtet. Da steht kein Free drüber.
Bitte warten ..
Mitglied: bastla
31.12.2008 um 15:00 Uhr
... soll uns nichts Schlimmeres passieren ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
BATCH ini Datei Datei auslesen
gelöst Frage von Juergen42Batch & Shell2 Kommentare

Hallo zusammen, ich möchte eine ini Datei auslesen mit folgenden Aufbau INHALT DER INI ID=30 NAME="test1" PFAD="K:\Kontoauszug\Test1\*.pdf" PFAD_S="K:\Kontoauszug\Test1\Sicherung\" ID=28 ...

Batch & Shell

Mittels Batch bestimmte Information aus unbekannter Textdatei auslesen und in XML-Datei schreiben

gelöst Frage von tardezyxBatch & Shell3 Kommentare

Hallo, es sind innerhalb eines Verzeichnisses sehr viele Unterordner vorhanden, in denen sich jeweils eine Textdatei befindet, deren Strukturen ...

Batch & Shell

Batch File zum Auslesen einer Datei

gelöst Frage von Marcel1989Batch & Shell9 Kommentare

Hallo, Ich scheibe momentan ein Anmeldescript als batch mit dem Aufruf von VBS dateien. Hierfür haben wir bereits gruppen ...

Batch & Shell

Zwei Werte vergleichen in einer Batch-Datei

gelöst Frage von PatrickHeissi10Batch & Shell1 Kommentar

Ich möchte die beiden Variablen %eins% und %zwei% vergleichen haben diese den gleichen Wert haben-> goto einszwei Danke

Neue Wissensbeiträge
Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 5 StundenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 16 StundenSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 16 StundenMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 16 StundenHardware11 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

Heiß diskutierte Inhalte
Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux23 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL18 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...

LAN, WAN, Wireless
Kommunikation zwischen verschiedenen IP-Bereichen
Frage von DirkHoLAN, WAN, Wireless13 Kommentare

Hallo zusammen, von Unitymedia habe ich ein neues Modem (Connect Box) erhalten, das u.a. IPv4 aber keinen Bridge Mode ...

Windows Server
Domänencontroller trennen
Frage von Akit57Windows Server13 Kommentare

Hallo, ich hoffe das mir hier jemand meine Frage trotz der spärlichen Informationen die ich geben kann beantworten kann: ...