Bandbreite berechnen (Kontingent)

qsrs

Erfahrenes Mitglied
Hallo,

ich habe ein Skript, mit dem man Dateien hoch und herunterladen kann, es gibt Gruppen und Benutzer die entsprechende Berechtigungen haben. Nun würde ich das Ganze gerne erweitern mit einer Funktion, um den globalen Traffic einzuschränken. Ich möchte beispielsweise einen maximalen Wert pro Woche, Monat oder Jahr definieren. Ich gebe z.B. als Wert 10 GB an uns speichere diesen Wert in einer Tabelle (natürlich in Bytes: 10737418240). Dann kann ich ja bei jedem Upload die Größe der Datei abfragen und sie in einem weitern Feld in der DB-Tabelle speichern und das Volumen jedes weiteren Uploads addieren, um eine Summe des Gesamtvolumens, also des Traffics zu erhalten.

Meine Frage ist nun, wie realisiere ich das mit der Zeitspanne. Also wenn der Traffic für einen Monat, ein Jahr oder nur für eine Woche gelten soll. Ich habe leider gar keinen Ansatz da ich nicht weiß, wie ich den zeitlichen Faktor berücksichtigen soll. Hat jemand einen Ansatz? Vielen Dank.

Im Anschluss würde ich noch den prozentualen Anteil anzeigen, der genutzt wurde, und welcher noch zur Verfügung steht, um z.B ein Kuchendiagramm zu erstellen. Diagramm ist kein Problem, aber die Werte zu ermitteln.
 
Zuletzt bearbeitet:
Das hängt von der Interpretation der Begriffe Woche, Monat und Jahr ab. Ob es also eine Kalenderwoche, ein Kalendermonat und ein Kalenderjahr oder eine Woche (also sieben Tage), ein Monat (vier Wochen) und ein Jahr als Zeitspanne relativ vom aktuellen Zeitpunkt ist.
 
Hallo Gumbo,

ich würde es gerne mit Kalender-Jahr/Monat/Woche realisieren. So ist es ja auch bei Providern üblich, die Traffic von Webhostings einschränken. Meistens jedenfalls. Für einen Ansatz wäre ich sehr dankbar. Vielen Dank.
 
Nun du protokollierst einfach jeden Datenverkehr samt Datum und kannst anhand dieser Werte die Summe des Datenverkehrs eines Zeitintervalls berechnen.
 
Ah, vielen Dank, natürlich. Eines ist aber noch etwas unklar. Ich weiß zwar wie ich es bei Monat und Jahr mache, nicht aber bei der aktuellen Woche. Wenn ich bei einem Upload den Monat und das Jahr speichere, kann ich problemlos die Downloads mit date(), also dem aktuellen Monat oder Jahr, vergleichen, abfragen und addieren, die in diesem Monat oder Jahr getätigt wurden und somit mit einer Summe vergleichen. Wie aber mache ich das mit der aktuellen Woche, diese wird mir ja in keiner Form geliefert, oder doch? Gibt es in PHP oder SQL dafür einen Wert?
 
Hallo Gumbo,

ich habe noch eine Frage zum Speichern des Datums. Im Moment speichere ich den Unix-Timestamp pro Download. Sollte ich, um ein bestimmtes Intervall abzufragen, in separate Zellen das Jahr, den Monat, die Kalenderwoche, den Tag im Format 2007 01 13 01 speichern, damit ich dann entsprechend abfragen kann, oder kann ich dies auch über den Timestamp abfragen? Das wäre mir lieber, dann müsste ich nicht zusätzliche Zellen anlegen und Werte speichern. Wie aber frage ich das dann ab? Also beispielsweise: Hole mir alle Downloads aus Kalenderwoche 13. Wie könnte dieses Abfrage aussehen, wenn ich in der Tabelle nur den Unix-Timestamp stehen habe? Vielen Dank für einen evtl. Ansatz.
 
Ganz kurz noch zur Erklärung. Den Timestamp kann ich ja per PHP umrechnen, also z.B. so: date ("d.m.Y - H:i:s", 1175422470).

Kann ich denn aber eine MySQL-Abfrage gestalten, die mir nur die Datensätze des Jahres 2007 liefert, oder der Kalenderwoche 13 etc.? Geht das, wenn in der Datenbank nur der Timstamp gespeichert wurde?
 
Zuletzt bearbeitet:
Zurück