Festplattenspeicher auslesen (Server) und Einbau in vorhandenes Dokument
Hallo,
ich hoffe ich bin hier im richtigen Bereich , wenn nicht bitte verschieben.
Zu meinem Problem:
Ich habe per Xampp eine php-Seite erstellt womit ich den Status unserer Server auslesen kann (Online/Offline). Nun würde ich gerne auch den Festplattenspeicher (Total/Belegt) anzeigen lassen. Ich hab bereits einen Code gefunden der mir dies für die lokalen Platten anzeigt. Dazu habe ich jetzt 2 Fragen. Zum einen bekomme ich zwar alle Daten beim aufrufen jedoch scheint in Zeile 24/28 die Variable "groesse" nicht definiert zu sein. Wie kann ich den Fehler beheben?
Meine 2. und entscheidene Frage ist. Ist es Möglich eine solche Abfrage über das Netzwerk zu starten mit z.B. "IP"/c: o.ä.
<?
$path = "C:/";
$free = round(disk_free_space ($path) / 1024 / 1024, 3);
$disk = round(disk_total_space ($path) / 1024 / 1024, 3);
printf ('<p>von %s GB sind noch %s GB frei.</p>',
number_format ( $disk, 0, ',', '.'),
number_format ( $free, 0, ',', '.')
);
define ('_size', 4096);
function dir_size($DIR = FALSE) {
if ( ! $DIR OR ! is_dir($DIR)) return;
if (substr($DIR,-1) != "/") $DIR .= "/";
if ($d = dir($DIR)) {
$size = _size;
while ($n = $d->read()) {
if ($n == "." OR $n == "..") continue;
$groesse += (is_dir($DIR . $n))
? dir_size($DIR . $n) + $size
: ceil(filesize($DIR . $n) / $size) * $size;
}
$d->close();
}
return $groesse;
}
printf('<p>belegter Plattenplatz im Verzeichnis: %s bytes</p>',
dir_size(dirname(__file__)));
?>
Gruß
Martin
ich hoffe ich bin hier im richtigen Bereich , wenn nicht bitte verschieben.
Zu meinem Problem:
Ich habe per Xampp eine php-Seite erstellt womit ich den Status unserer Server auslesen kann (Online/Offline). Nun würde ich gerne auch den Festplattenspeicher (Total/Belegt) anzeigen lassen. Ich hab bereits einen Code gefunden der mir dies für die lokalen Platten anzeigt. Dazu habe ich jetzt 2 Fragen. Zum einen bekomme ich zwar alle Daten beim aufrufen jedoch scheint in Zeile 24/28 die Variable "groesse" nicht definiert zu sein. Wie kann ich den Fehler beheben?
Meine 2. und entscheidene Frage ist. Ist es Möglich eine solche Abfrage über das Netzwerk zu starten mit z.B. "IP"/c: o.ä.
<?
$path = "C:/";
$free = round(disk_free_space ($path) / 1024 / 1024, 3);
$disk = round(disk_total_space ($path) / 1024 / 1024, 3);
printf ('<p>von %s GB sind noch %s GB frei.</p>',
number_format ( $disk, 0, ',', '.'),
number_format ( $free, 0, ',', '.')
);
define ('_size', 4096);
function dir_size($DIR = FALSE) {
if ( ! $DIR OR ! is_dir($DIR)) return;
if (substr($DIR,-1) != "/") $DIR .= "/";
if ($d = dir($DIR)) {
$size = _size;
while ($n = $d->read()) {
if ($n == "." OR $n == "..") continue;
$groesse += (is_dir($DIR . $n))
? dir_size($DIR . $n) + $size
: ceil(filesize($DIR . $n) / $size) * $size;
}
$d->close();
}
return $groesse;
}
printf('<p>belegter Plattenplatz im Verzeichnis: %s bytes</p>',
dir_size(dirname(__file__)));
?>
Gruß
Martin
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 178358
Url: https://administrator.de/contentid/178358
Ausgedruckt am: 23.11.2024 um 00:11 Uhr
7 Kommentare
Neuester Kommentar
Moin,
definierst?
Über's Netzwerk geht das nicht so einfach, da musst du dann schon WMI oder SNMP bemühen.
lg,
Slainte
[...] in Zeile 24/28 [...]
Benutz doch mal bitte die code tags um deinen Code zu formatieren, auf Zeilen abzaehlne hab ich keine Lust [...] Variable "groesse" nicht definiert zu sein. Wie kann ich den Fehler beheben?
Evtl. in dem du sie vorher per $groesse=0;
Über's Netzwerk geht das nicht so einfach, da musst du dann schon WMI oder SNMP bemühen.
lg,
Slainte
Hallo Martin,
ich kann slainthe nur zustimmen: SNMP ist das Mittel der Wahl
die passenden Object-IDs lauten
1.3.6.1.2.1.25.2.3.1.5.x hrStorageSize
1.3.6.1.2.1.25.2.3.1.6.x hrStorageUsed
damit kann man den Füllgrad leicht ausrechnen. Das x steht für die Nummer/Index der Platte.
die ganzen Festplattenparameter verbergen isch under der OID: 1.3.6.1.2.1.25.2.3.1 in der Host-MIB. Tools nennen sich MIB-Walk... oder http://snm.sourceforge.net/
SNMP kann sehr gut über die CMD oder PHP gesteuert werden.
lg
Netman
ich kann slainthe nur zustimmen: SNMP ist das Mittel der Wahl
die passenden Object-IDs lauten
1.3.6.1.2.1.25.2.3.1.5.x hrStorageSize
1.3.6.1.2.1.25.2.3.1.6.x hrStorageUsed
damit kann man den Füllgrad leicht ausrechnen. Das x steht für die Nummer/Index der Platte.
die ganzen Festplattenparameter verbergen isch under der OID: 1.3.6.1.2.1.25.2.3.1 in der Host-MIB. Tools nennen sich MIB-Walk... oder http://snm.sourceforge.net/
SNMP kann sehr gut über die CMD oder PHP gesteuert werden.
lg
Netman