Traffic pro User limitieren, ähnlich Quota

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Traffic pro User limitieren, ähnlich Quota

Beitrag von roli » 22.11.2004 11:35:37

Hi Leute,

ich habe in meinem Heimnetz drei Rechner, an denen insgesammt 4 Leute surfen (jeder User sitzt immer an der selben Kiste). Da wir derzeit einen DSL Volumentarif nutzen (1 GB frei, alles weitere recht teuer => werde wohl demnaechst wechseln), wuerde ich gerne das frei Volumen auf die User verteilen koennen, nur wie?
Ich haette folgenden Anforderungen an die Lösung:
  • -das Volumen kann beliebig auf die User verteilt werden
    -die User erhalten einen Hinweis, wieviel Traffic sie schon genutzt haben, und was Ihnen noch zur Verfügung steht, entweder mittels PopUp nach dem LogIn, und/oder per Mail
    -nachdem die Grenze erreicht ist, wird der Internetzugang des betreffenden Users gesperrt (schoen waere es, wenn der User die aktuelle Session noch beenden könnte, und die Sperrung erst bei'm nächsten Login erfolgt)
    -der Admin, also ich, erhält eine Mail, wenn ein User eine bestimmte Menge des ihm zugeteilten Volumens verbraucht hat, um so ggf. hier "ein paar MB nachlegen zu koennen"
Uebrigens, eine "Script" Lösung wäre mir sympatischer als ein buntes Tool :lol:

Ich habe mich hier drann auch schon versucht, habe es aber noch nicht in den Griff bekommen das Volumen zu zählen, das ein einzelner User verbraucht hat. Wenn das geschafft ist, denke ich, den Rest auch selber zu schaffen.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Benutzeravatar
cordovan
Beiträge: 467
Registriert: 03.01.2004 22:37:28

Beitrag von cordovan » 22.11.2004 12:30:46


roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 22.11.2004 13:31:04

Hi,

erst mal danke.
Leider ist das nicht die Lösung:
Clearly your computer would need to be 'always-on' for this example
Das ist hier nicht gegeben, "haste noch 'ne Idee"?
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 22.11.2004 16:01:09

Einen habe ich noch,

was mir einfaellt, an einem der Rechner ist immer nur ein User zeitgleich angemeldet, daher könnte man doch sicherlich sagen, aller Traffic der das lokale Netz verläßt, bzw. der von aussen kommt (es laufen hier keine von aussen erreichbaren Server), ist diesem User zuzuordnen.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 24.11.2004 08:57:10

Hi,

da leider bisher noch nicht der Knaller an Tip gekommen ist, stelle ich mal meinen Ansatz zur Diskussion.

Code: Alles auswählen

# Aktuell genutztes Volumen
log_dev=eth0
akt_gesendet=$(grep $log_dev /proc/net/dev |awk '{print $9}')
akt_empfangen=$(grep $log_dev /proc/net/dev |awk '{print $1}'|cut -f2 -d:)
Ob's jetzt $9 und $1 sein muessen will ich hier nicht diskutieren, da ich auch gerade sehe das zwischen dem Interfacenamen und dem Empfangenen Volumen mehrere Leerzeichen stehen. Als ich diese Zeilen geschrieben habe, war da kein Leerzeichen, da ich da schon lange online war, und die Felder dementsprechend "zusammen gefallen" waren.

Code: Alles auswählen

> cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo: 2939014   37386    0    0    0     0          0         0  2939014   37386    0    0    0     0       0          0
  eth0:       0       0    0    0    0     0          0         0    14364      42    0    0    0     0       0          0
Da ich davon ausgehe das zu einem Zeitpunkt immer nur ein User an/mit dem Rechner arbeitet, will ich zu Beginn der Session die Werte ermitteln, und am Ende. Die Differenz hieraus, will ich zu seinem bisher verbrauchten Volumen addieren. Ist das vom Ansatz her überhaupt richtig?
Ein Problem mit dem ich mich bisher nur am Rande beschäftigt habe ist, wie "bemerke" ich das sich User X an- bzw. abmeldet? Alle User ausser mir nutzen grundsätzlich KDM zum anmelden, von Konsole haben die noch nie was gehört.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Antworten