Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Netrwerk Traffic pro User limitieren, ähnlich Quota

Alles rund um das Internet, Internet-Anwendungen (E-Mail, Surfen, Cloud usw.) und das Einrichten von Netzwerken einschl. VPN unter Linux

Moderator: Moderatoren

Antworten
s_quelle
Newbie
Newbie
Beiträge: 2
Registriert: 23. Nov 2004, 11:07

Netrwerk Traffic pro User limitieren, ähnlich Quota

Beitrag von s_quelle »

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 demnächst wechseln), würde ich gerne das frei Volumen auf die User verteilen können, nur wie? Übrigens, die Rechner werden nach benutzung immer wieder aus geschaltet, der im aktuellen Zeitraum bereits verbrauchte Traffic muesste also irgendwie auf Platte gespeichert werden.
Ich hätte 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 können"
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.


Danke

Roland
s_quelle
Newbie
Newbie
Beiträge: 2
Registriert: 23. Nov 2004, 11:07

Beitrag von s_quelle »

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.

Für jeden Tip dankbar

Roland
Antworten