staging.inyokaproject.org

Festplattenbelegung mit PHP abfragen

Status: Gelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

nobody2311

Anmeldungsdatum:
28. August 2016

Beiträge: Zähle...

Hallo zusammen und ein gesundes neues Jahr 😉

Ich beschäftige mich im Moment damit, dass ich mir über Nginx im lokalen Netzwerk die Festplattenbelegung aller Festplatten im Heimserver anzeigen lasse. Im Moment bin ich soweit, dass alle Festplatten aufgelistet werden, aber mit dem Befehl

df -h /media/HDD3/

wird mir natürlich die gesamte Zeile ausgegeben, also z.B.:

HDD3: Filesystem Size Used Avail Use% Mounted on /dev/sdc1 7.2T 6.6T 627G 92% /media/HDD3

Ich hätte aber gerne ein paar Werte "einzelnd", also z.B. die Prozentangabe separat.

Der Code im Moment:

1
2
3
4
5
6
<html>	
    <p>HDD1: <?php system('df -h /media/HDD1/'); ?> </p> <br />
    <p>HDD2: <?php system('df -h /media/HDD2/'); ?> </p> <br />
    <p>HDD3: <?php system('df -h /media/HDD3/'); ?> </p> <br />
    <p>HDD4: <?php system('df -h /media/HDD4/'); ?> </p> <br />
</html>

Auf dem Server läuft zwar Debian 8, freue mich aber trotzdem über Tipps 😉

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Hallo!

Ich würde mir die Ausgabe auf der Konsole vorbereiten und die Daten in einem PHP-Array auswerten:

df -h | grep dev/sd | awk '{ print $1 ":TRENNZEICHEN:" $5 }'
#bzw. für LVM
df -h | grep /dev/mapper | awk '{ print $1 ":TRENNER:" $5 }'

Somit bekommst du aus der Shell nur die Werte, die du benötigst und kannst diese mittels einer Schleife anzeigen lassen.

GTAzoccer

Avatar von GTAzoccer

Anmeldungsdatum:
18. Mai 2007

Beiträge: 255

Es gäbe da auch noch die Möglichkeit mit disk_total_space und disk_free_space zu arbeiten. Dann kannst du auf den Systemaufruf ganz verzichten. 😉

nobody2311

(Themenstarter)

Anmeldungsdatum:
28. August 2016

Beiträge: Zähle...

Danke für eure Antworten ☺

GTAzoccer schrieb:

Es gäbe da auch noch die Möglichkeit mit disk_total_space und disk_free_space zu arbeiten. Dann kannst du auf den Systemaufruf ganz verzichten. 😉

Das ist ja einfach 😲 Hätte nicht gedacht, dass PHP sowas bietet.. 👍 Funktioniert perfekt, danke!

Damit nachfolgende Generationen auch was davon haben: 😉

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<?php
    $HDD4TotalSpace = disk_total_space("/media/hdd4"); 
    $si_prefix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' );
    $base = 1024;
    $class = min((int)log($HDD4TotalSpace , $base) , count($si_prefix) - 1);
    echo sprintf('%1.2f' , $HDD4TotalSpace / pow($base,$class)) . ' ' . $si_prefix[$class] . '<br />';
?>

<?php
    $HDD4FreeSpace = disk_free_space("/media/hdd4"); 
    $si_prefix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' );
    $base = 1024;
    $class = min((int)log($HDD4FreeSpace , $base) , count($si_prefix) - 1);
    echo sprintf('%1.2f' , $HDD4FreeSpace / pow($base,$class)) . ' ' . $si_prefix[$class] . '<br />';
?>
Antworten |