Speicherverbrauch errechnen

van_haakonnen

Registered User
Hallo :) ,

ich brauche mal eure Hilfe...

Ich habe eine normale Confixx-Installation: die Homepages meiner Freunde (wir teilen uns einen Server) liegen im Verzeichnis /home/www/webX/ ...

Confixx bietet ja die Funktion an den Verbrauch von Traffic einzusehen. Die Rechnung erfolgt hier auf Monate... Es wird also fortlaufend der Verbrauch hochgezählt und dann für einen Monat angezeigt.

So etwas ähnliches würde ich gerne für den verbrauchten Speicherplatz haben... Das kann auch ein Bash-Script sein, dass mir die Ergebnisse dann einfach zumailt oder sie in eine txt-Datei schreibt...

Ich möchte also für jeden Monat den Speicherverbrauch einsehen können. Ich stelle mir vor, dass ein Script z.B. alle 4 Stunden auf dem Server läuft, dass für jeden webX-Account den Speicher prüft und diesen irgendwo speichert... Hierbei ist innerhalb eines Monates immer nur der höchste Speicherverbrauch interessant... Ich brauche also nur für jeden Monat den maximalen Speicherverbrauch... Man braucht pro webX also nur einen Wert pro Monat...

Dann möchte ich mir durch ein zweites Script (das ich per Hand aufrufe) eine Liste erstellen lassen können und mir für den aktuellen Monat (und den letzten) diesen maximalen Verbrauch pro Nutzer anzeigen bzw. mailen lassen. Ich möchte immer nur den aktuellen Monat und den letzten Monat als Daten pro webX Nutzer erhalten...

Meint ihr, dass das möglich ist bzw. habt ihr eine Idee wie man sowas realisiert?

Also vielen , vielen Dank schonmal :)

Viele Grüße

Van_Haakonnen
 
Hallo van_haakonnen,

hier folgendes Script habe ich dir mal geschrieben, einfach mal ausprobieren und gucken, ob es das ist, was du brauchst.

Es listet das Dir, welches du bei [DIR] angeben musst, grept hier nur nach Verzeichnissen, die 'web*' heissen und liest deren Speichergröße aus.

Diese wird dann in ein *.txt Files geschrieben, welches gleichnamig dem webX ist.

Wird das Script nochmal aufgerufen, dann wird geprüft, ob die Größe des Directorys größer ist als die, die schon gespeichert ist, und wenn ja, dann wird diese statt der alten in das File geschrieben.

Wenn du noch Fragen hast, dann melde dich einfach nochmal.

Code:
#!/bin/bash
for i in $(find [DIR] -maxdepth 1 -type d | grep web); do

a=`du -s $i | sed -e 's/\s*\([0-9]*\).*/\1/'`
b=`cat $i.txt`
if [ -z $b ]
    then echo $a > $i.txt
elif [ $a -gt $b ]
    then echo $a > $i.txt
fi
done
exit 0

Lieben Gruß
Free
 
Back
Top