cookycat
Goto Top

Festplattenspeicher auslesen (Server) und Einbau in vorhandenes Dokument

Hallo,

ich hoffe ich bin hier im richtigen Bereich face-smile , 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

Content-ID: 178358

Url: https://administrator.de/contentid/178358

Ausgedruckt am: 23.11.2024 um 00:11 Uhr

SlainteMhath
SlainteMhath 04.01.2012 um 11:28:06 Uhr
Goto Top
Moin,

[...] in Zeile 24/28 [...]
Benutz doch mal bitte die code tags um deinen Code zu formatieren, auf Zeilen abzaehlne hab ich keine Lust face-smile

[...] Variable "groesse" nicht definiert zu sein. Wie kann ich den Fehler beheben?
Evtl. in dem du sie vorher per
 $groesse=0; 
definierst?

Über's Netzwerk geht das nicht so einfach, da musst du dann schon WMI oder SNMP bemühen.

lg,
Slainte
nxclass
nxclass 04.01.2012 um 11:37:00 Uhr
Goto Top
man kann mit den Backticks auch direkt auf Shell Aufrufe zurückgreifen.
echo `df -h`;

EDIT: ups - habe nicht gesehen dass Du dieses sehr spezielle und seltene Betriebssystem namens "Windows" benutzt
MrNetman
MrNetman 04.01.2012 um 12:11:28 Uhr
Goto Top
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
cookycat
cookycat 04.01.2012 um 12:17:24 Uhr
Goto Top
Danke Slainte,

hast Rest...wieso sollte man auch genau das tun was der Fehler einem sagt^^.

wie mach ich denn dieses Quelltextfenster im Forum?

Edit: Danke für die Tipps MrNetMan ich werde mal versuchen mich dort einzulesen.
SlainteMhath
SlainteMhath 04.01.2012 um 12:51:47 Uhr
Goto Top
wie mach ich denn dieses Quelltextfenster im Forum?
mit < code > und < / code > - ohne die blanks natuerlich.
cookycat
cookycat 05.01.2012 um 11:17:31 Uhr
Goto Top
Hi,

danke für den Tip mit dem code / code. Ich habe mir jetzt überlegt einfach alle Serverlaufwerke auf meinem XamppServer zu mappen. Dann kann ich ja auch alles auslesen ohne Netzwerkzugriffe zu haben.

Danke und Gruß,
Martin
cookycat
cookycat 06.01.2012 um 12:37:08 Uhr
Goto Top