Größe eines oder mehrere Verzeichnisse prüfen (System Monitoring)

Allgemein: Siehe Abschnitt System Monitoring (allgemein) (REST API).


Summe über alle Dateien und zusätzlich Teilsumme über jüngere Dateien.

Hinweis: Kann auch auf einem DMZ-Server eingesetzt werden.

Parameter


Name

Beschreibung

dir

dir.allow

dir.deny

(MAX_LEVEL)

(optional) Einzelnes Verzeichnis oder komma-getrennte Liste von Verzeichnissen. Default: <Installationspfad des Integration Servers>.

Hinweise:

  • Alle relativen Verzeichnisse unter dem Lobster-Installationsverzeichnis dürfen in der kommaseparierten Liste des Aufrufparameters dir angegeben werden, ohne weitergehende Berechtigung. Für Verzeichnisse, die aus dem Lobster-Installationspfad heraus führen, ist in der Konfiguration eine zusätzliche Erlaubnis-Regel nötig (dir.allow). Eine Erlaubnis-Regel bezieht sich nur auf dieses Verzeichnis, als Summations-Root. Es erlaubt nicht die Verwendung eines Unterverzeichnisses unter dem erlaubten externen Verzeichnis.

  • Erlaubnis für das Root-Verzeichnis eines Dateisystems ist nicht möglich. Ebenso sind spezielle Verzeichnisse des Betriebssystems ausgeschlossen, aus denen man z. B. die Namen oder Einstellungen von Benutzer-Accounts erraten könnte, z. B. /home.

  • Die Summation über / oder C:/ wird nicht erlaubt, weil Root-Verzeichnisse ausgeschlossen sind.

  • Zugriff auf C:/Users und alle Unterverzeichnisse ist verboten, selbst wenn eine Erlaubnisregel dafür existiert.

  • Unter Linux/UNIX besteht durch Verzeichnis-Links die Gefahr der endlosen Rekursion. Um das zu vermeiden kann in der Sicherheitsdatei (siehe unten) eine Property MAX_LEVEL angeben, das die maximale Rekursionstiefe in die Unterverzeichnisse begrenzt. Dadurch wird aber nur ein Programm-Absturz wegen unendlicher Rekursion verhindert. Verzeichnis-Links können zur Mehrfachzählung von Dateigrößen führen. Der Defaultwert ist MAX_LEVEL=100.

  • Ein zusätzliches Property dir.deny ist vorhanden, das vor dir.allow höhere Priorität hat. Man kann dort gegebenenfalls noch einmal explizit verbotene Verzeichnisse angeben, um auch eine irrtümliche Erlaubnis innerhalb dir.allow auszuschließen.

Beispiel:

dir.allow=/usr;/tmp;/usr/local;/sys;/proc;/usr/local/IS

dir.deny=/usr

In diesem Konfigurationsbeispiel sind /tmp, /usr/local und /usr/local/IS innerhalb Parameter dir erlaubt.

Obwohl /usr in dir.allow erlaubt ist, wird es durch die Verbotsregel dir.deny untersagt.

Obwohl die Pfade /sys und /proc in der Erlaubnis-Regel stehen, ist eine Summation dort nicht zulässig, weil es sich um Pseudo-Verzeichnisse handelt, die nicht real im Verzeichnissystem angelegt sind.

cmd

(optional) Angabe für Teilsumme. Dateien jünger als n Einheiten (s, m, h, d), also Sekunden, Minuten, Stunden, Tage. Bei negativem Wert gilt "älter als". Mehrere Teilsummen-Kommandos müssen durch Komma getrennt sein.

recurse

(optional) false, falls keine Unterverzeichnisse berücksichtigt werden sollen. Default: true.

parallel

(optional) true zur Summation in mehreren niedrig priorisierten Threads oder false zur Summation im aktuellen Thread (maximale Geschwindigkeit). Default: true.

nameRegex

(optional) Beschränkt die Summation auf Dateien, deren Dateiname den angegebenen regulären Ausdruck erfüllt, um z. B. zwischen Message- und Error-Logs unterscheiden zu können.

Sicherheitskonfiguration


Sicherheitskonfiguration durch optionale Datei ./conf/dirsize/dirSize.config.


client.ip = regex:127\\..*;regex:192\\.168\\.21[367]\\..*;0:0:0:0:0:0:0:1
client.secure=false

Parameter der Sicherheitskonfiguration


Name

Beschreibung

client.ip

(optional) Zugriff erlaubt von diesen IPs. Default: localhost. Mit Präfix regex: können reguläre Ausdrücke verwendet werden (siehe Beispiel oben).

client.secure

(optional) false, falls HTTP erlaubt ist. true, falls nur HTTPS erlaubt ist. Default: true.

MAX_LEVEL

(optional) Maximale Rekursionstiefe in Unterverzeichnisse. Default: 100. Siehe Parameter dir.

Zugriff-Beispiel


http(s)://<IP/URL Integration Server oder DMZ>:<Port>/dw/monitor/v1/dirSize

Weitere Beispiele:

http(s)://<IP/URL Integration Server>:<Port>/dw/monitor/v1/dirSize?dir=logs&cmd=1d&nameRegex=.*err.*&parallel=false
http(s)://<IP/URL Integration Server>:<Port>/dw/monitor/v1/dirSize?dir=logs&cmd=1d
http(s)://<IP/URL Integration Server>:<Port>/dw/monitor/v1/dirSize?dir=/tmp&cmd=+30d,-30d

Beispiel-Ergebnis-XML


Hier für den Aufruf http(s)://<IP/URL Integration Server>:<Port>/dw/monitor/v1/dirSize?dir=logs&cmd=1d

<DIRSIZES>
<DIRSIZE>
<PATH>logs</PATH>
<SUM_MBYTES>140</SUM_MBYTES>
<totalSpace>6.4724250624E10</totalSpace>
<freeSpace>4.3113938944E10</freeSpace>
<recurse>true</recurse>
<DurationSec>0.129</DurationSec>
<SubSum>
<Label>all</Label>
<younger>true</younger>
<time>0</time>
<bytes>1.46772885E8</bytes>
<count>6208</count>
</SubSum>
<SubSum>
<Label>1d</Label>
<younger>true</younger>
<time>1615792154265</time>
<bytes>2.2280063E7</bytes>
<count>58</count>
</SubSum>
</DIRSIZE>
</DIRSIZES>

Bedeutung der Elemente


Element

Beschreibung

DIRSIZES

Das Root-Element heißt DIRSIZES, es hat keine Attribute.

DIRSIZE

Unter diesem Element befindet sich eine Folge von oder nur ein Element DIRSIZE. Wenn Parameter dir nur einen Wert hat, ist es ein Element, bei einer kommaseparierten Liste von Verzeichnissen entsteht für jedes Element dieser Liste ein Element DIRSIZE.

PATH

SUM_MBYTES

Die Elemente PATH und SUM_MBYTES beziehen sich auf ein Verzeichnis und optional alle seine Unterverzeichnisse, falls recurse=true ist.

totalSpace

freeSpace

Die Elemente totalSpace und freeSpace beziehen sich auf das Dateisystem, in dem das Unterverzeichnis physisch angelegt ist.

recurse

Siehe Parameter recurse und Element PATH oben.

DurationSec

DurationSec bezieht sich auf die Dauer der Berechnung der Dateigrößen dieses Verzeichnisses und hat allenfalls Informationswert.

nameRegex

Wenn im Aufruf ein Parameter nameRegex angegeben wird, erscheint ein XML-Element nameRegex mit dem entsprechenden Wert. Alle Summationen gehen dann nur über die Dateien, die dem regulären Ausdruck entsprechen.

SubSum

Label

younger

time

Ein oder mehrere Elemente SubSum. Es gibt immer ein Element SubSum mit Element Label=all. Das beschreibt die Summe der Bytegrößen aller Dateien, über die die Summation geht. Im Aufruf darf ein cmd-Parameter mit einer Altersangabe oder eine kommaseparierte Liste von Altersangaben stehen. Für jede Altersangabe entsteht ein weiteres Element SubSum, das dann nur jene Dateien aus der Menge all zählt, die der Altersangabe entsprechen.

Die Altersangabe wird als Subelement Label zurück gegeben. Sie kann aus einer Ganzzahl und einer Einheit bestehen. Erlaubte Einheiten sind s, m, h, d (Sekunden, Minuten, Stunden, Tage). Mit 1d ist die Untermenge aller Dateien eingeschlossen, deren letzte Modifizierung weniger als 1 Tag (24 Stunden) zurück liegt. Positive Werte bezeichnen die jüngeren Dateien, negative Werte die älteren.

Dieser Sachverhalt wird zusätzlich durch die Subelemente younger (mit true oder false) und time (Zeitstempel in Millisekunden seit 01.01.1971) gekennzeichnet.

byte

count

Die Elemente byte und count geben die Summengröße bzw. die Anzahl der erfassten Dateien an. Alle Größenangaben (bytes) sind als Double-Werte in wissenschaftlicher Darstellung mit Exponent dargestellt. Die Anzahl (count) ist eine Ganzzahl.


Im obigen Beispiel wurde das Unterverzeichnis logs unter dem Lobster-Installationsverzeichnis und alle seine Unterverzeichnisse (recurse) durchsucht. Eine Auswahl nach Dateinamen erfolgte nicht. Die Dateien beanspruchen etwa 140 Mbytes. Die Abfrage hat 129 ms gedauert. Es wurden 6208 Dateien mit der Gesamtgröße 146772885 Bytes gefunden. Zusätzlich wurde eine Summation über die Untermenge dieser Dateien ausgeführt, deren letzte Änderung jünger als einen Tag ist. Dabei wurden 58 Dateien mit einer Gesamtgröße von 22280063 Bytes gefunden. Zusätzlich verraten totalSpace und freeSpace noch, dass das Unterverzeichnis logs physisch in einem Dateisystem ist, das etwa 64 GBytes groß ist, wovon noch etwa 43 GBytes frei sind.