Confixx2 Trafficbegrenzung
Confixx2 Trafficbegrenzung
Hallo.
Geht die Trafficbegrenzung bei Confixx2 nun? Wenn ja, wie ?
Wenn ich 10MB Traffic einstelle, dann wird bei Ã?berschreitung das zwar unterlegt, aber die Seite ist immer noch zu erreichen...
Geht die Trafficbegrenzung bei Confixx2 nun? Wenn ja, wie ?
Wenn ich 10MB Traffic einstelle, dann wird bei Ã?berschreitung das zwar unterlegt, aber die Seite ist immer noch zu erreichen...
Re: Confixx2 Trafficbegrenzung
Ich sag mal so: Confixx 2 kann es im Prinzip nicht, aber es ist durchaus denkbar einen cronjob mit einem PHP script zu erstellen, welches bei Ã?berschreiten des Traffics den entsprechenden Kunden in der Datenbank auf gesperrt setzt. den Rest erledigt COnfixx ja dann selber beim minütlichen update...
Falls Interesse besteht einfach melden...
Falls Interesse besteht einfach melden...
Re: Confixx2 Trafficbegrenzung
verlesen :)
Re: Confixx2 Trafficbegrenzung
einfach ne Datei anlegen, z.B. "check_traffic.php":
===============================================
#!/usr/bin/php
<?
$db = mysql_connect("localhost","<MYSQL_USER>","<MYSQL_PW>");
$query = mysql_query("SELECT * FROM confixx.kunden ORDER BY kunde");
$monat = date("m"); $jahr = date("Y");
while($result = mysql_fetch_array($query)) {
$qtraffic = mysql_query("SELECT (sum(ftp) + sum(web) + sum(email)) AS gtransfer FROM confixx.transfer WHERE kunde='$result[kunde]' AND monat='$monat' AND jahr='$jahr' AND geloescht='0'");
$traffic = mysql_fetch_array($qtraffic);
if($result[maxtransfer]<=$traffic["gtransfer"] && $result[maxtransfer] != "-1") {
mysql_query("UPDATE confixx.kunden SET gesperrt='1' WHERE kunde='$result[kunde]'");
}
}
mysql_close($db);
?>
===============================================
danach
chmod 755 check_traffic.php
und nen cronjob anlegen:
* * * * * /path/to/check_traffic.php >/dev/null 2>&1
===============================================
#!/usr/bin/php
<?
$db = mysql_connect("localhost","<MYSQL_USER>","<MYSQL_PW>");
$query = mysql_query("SELECT * FROM confixx.kunden ORDER BY kunde");
$monat = date("m"); $jahr = date("Y");
while($result = mysql_fetch_array($query)) {
$qtraffic = mysql_query("SELECT (sum(ftp) + sum(web) + sum(email)) AS gtransfer FROM confixx.transfer WHERE kunde='$result[kunde]' AND monat='$monat' AND jahr='$jahr' AND geloescht='0'");
$traffic = mysql_fetch_array($qtraffic);
if($result[maxtransfer]<=$traffic["gtransfer"] && $result[maxtransfer] != "-1") {
mysql_query("UPDATE confixx.kunden SET gesperrt='1' WHERE kunde='$result[kunde]'");
}
}
mysql_close($db);
?>
===============================================
danach
chmod 755 check_traffic.php
und nen cronjob anlegen:
* * * * * /path/to/check_traffic.php >/dev/null 2>&1
Re: Confixx2 Trafficbegrenzung
funzt prima danke...
will ned unverschämt erscheinen...aber könnte man das auch noch erweitern dasser auch wieder entsperrt wenn der traffic wieder unter dem Limit ist (neuer Monat)?
also nur wenn du lust hast....
will ned unverschämt erscheinen...aber könnte man das auch noch erweitern dasser auch wieder entsperrt wenn der traffic wieder unter dem Limit ist (neuer Monat)?
also nur wenn du lust hast....
Re: Confixx2 Trafficbegrenzung
Gleiches Spiel unlock.php erstellen:
===============================================
#!/usr/bin/php
<?
$db = mysql_connect("localhost","<MYSQL_USER>","<MYSQL_PW>");
mysql_query("UPDATE confixx.kunden SET gesperrt='0' WHERE 1");
mysql_close($db);
?>
===============================================
chmod 755 unlock.php
Hier reicht ein Croneintrag:
1 0 1 * * /path/to/unlock.php >/dev/null 2>&1
Das entsperrt dann alle Kunden eine Minute nach Mitternacht eines neuen Monats.
Beachte nur das das ALLE kunden entsperrt werden, also auch die, die wegen Zahlungsverzug oder so Manuell gesperrt wurden.
===============================================
#!/usr/bin/php
<?
$db = mysql_connect("localhost","<MYSQL_USER>","<MYSQL_PW>");
mysql_query("UPDATE confixx.kunden SET gesperrt='0' WHERE 1");
mysql_close($db);
?>
===============================================
chmod 755 unlock.php
Hier reicht ein Croneintrag:
1 0 1 * * /path/to/unlock.php >/dev/null 2>&1
Das entsperrt dann alle Kunden eine Minute nach Mitternacht eines neuen Monats.
Beachte nur das das ALLE kunden entsperrt werden, also auch die, die wegen Zahlungsverzug oder so Manuell gesperrt wurden.
Re: Confixx2 Trafficbegrenzung
Aber mal was anderes: warum stellste den Ã?berhangtraffik deinen Kunden nicht einfach in Rechnung und schlägst noch was oben drauf ???
Ein Script um das zu Berechnen hab ich auch :)
Ein Script um das zu Berechnen hab ich auch :)
Re: Confixx2 Trafficbegrenzung
Wow, super !
ja, das Beste wäre, wenn ich eine E-Mail bekommen würde, wenn das Limit übrschritten wurde...
Da muss ich dann statt: "mysql_query("UPDATE confixx.kunden SET gesperrt='1' WHERE kunde='$result[kunde]'"); ",
mit sendmail irgendwetwas machen. Wei jemand wie man mit Sendmail über PHP eine E-Mail z.B. zu info@domain.de schickt ? Dann muss ich nicht so lang suchen :)
ja, das Beste wäre, wenn ich eine E-Mail bekommen würde, wenn das Limit übrschritten wurde...
Da muss ich dann statt: "mysql_query("UPDATE confixx.kunden SET gesperrt='1' WHERE kunde='$result[kunde]'"); ",
mit sendmail irgendwetwas machen. Wei jemand wie man mit Sendmail über PHP eine E-Mail z.B. zu info@domain.de schickt ? Dann muss ich nicht so lang suchen :)
Re: Confixx2 Trafficbegrenzung
weil ich keine zahlenden Kunden habe.CyberLine wrote:Aber mal was anderes: warum stellste den Ã?berhangtraffik deinen Kunden nicht einfach in Rechnung und schlägst noch was oben drauf ???
Ein Script um das zu Berechnen hab ich auch :)
Ich habe lediglich einigen Freunden webspaceaccounts gegeben.
Und da ich manchmal mehrere Tage nicht daheim bin, die Jungs aber manchmal etwas "grosszügig" mit ihrem Traffic umgehen brauchte ich ne automatisch-auf-die-finger-klopf-Methode
Re: Confixx2 Trafficbegrenzung
Na denn, also willste Zusätzlich noch ne Mailbenachrichtigung bei Ã?berschreiten oder statt dem Sperren ?
bau folgende Zeilen ein:
$text = "Der Kunde $result[kunde] hat seinen erlaubten Traffic von $result[maxtransfer] kb überschritten und wurde gesperrt!";
mail("info@domain.de","Trafficüberschreitung $result[kunde]",$text,"From: webmaster@$SERVER_NAMEnReply-To: webmaster@$SERVER_NAMEnX-Mailer: PHP/" . phpversion());
Wenn du nur eine Mail möchtest dann ersetz die mysql_query( ... geschichte wie du sagtest oder setz die zwei sachen untendrunter.
bau folgende Zeilen ein:
$text = "Der Kunde $result[kunde] hat seinen erlaubten Traffic von $result[maxtransfer] kb überschritten und wurde gesperrt!";
mail("info@domain.de","Trafficüberschreitung $result[kunde]",$text,"From: webmaster@$SERVER_NAMEnReply-To: webmaster@$SERVER_NAMEnX-Mailer: PHP/" . phpversion());
Wenn du nur eine Mail möchtest dann ersetz die mysql_query( ... geschichte wie du sagtest oder setz die zwei sachen untendrunter.
Re: Confixx2 Trafficbegrenzung
dickes danke @ cyberline
Re: Confixx2 Trafficbegrenzung
da kommt beim ausführen folgender fehler:
danke schonmal!
kann mir einer weiter helfen? :)/usr/bin/php: error while loading shared libraries: libltdl.so.0: cannot load shared object file: No such file or directory
danke schonmal!
Re: Confixx2 Trafficbegrenzung
schau mal in deine php.ini meist zu finden unter /etc/php.inieiSi wrote:da kommt beim ausführen folgender fehler:
kann mir einer weiter helfen? :)/usr/bin/php: error while loading shared libraries: libltdl.so.0: cannot load shared object file: No such file or directory
danke schonmal!
ob da eine Zeile steht:
extension=libltdl.so
Wenn ja mach ein ; davor und starte Apache neu, ansonsten würd ich sagen du mußt mal php neu Compilieren.
Wenn du es gar nicht mit php auf Kommandoebene hinbekommst, dann lösch die erste Zeile aus dem Script:
#!/usr/bin/php
und leg das script in einen Ordner, der über Internet erreichbar ist, und änder den Croneintrag wie folgt:
* * * * * lynx -dump http://meine.domain.de/check_traffic.php >/dev/null 2>&1
Re: Confixx2 Trafficbegrenzung
Hmm wäre dies hir nicht etwas für Download-section bzw. FAQ?
Auf alle Fälle ein dickes daumen hoch!!!
Auf alle Fälle ein dickes daumen hoch!!!
Re: Confixx2 Trafficbegrenzung
Hab noch ne ergänzung zum Script von CyberLine :
Wenn ich es ausführe, dann wird zwar diesem Kunden der Zugriff auf das Confixx Menü gesperrt, aber die HTML Seite, wie auch Mail und FTP sind noch voll erreichbar.
Das dies auch gesperrt wird, muss man in der Tabelle "allgemein" in der Confixx DB noch 2 Werte von 0 auf 1 ändern, damit das counterscript merkt, dass sich was getan hat und dann die FTP-User und ApacheVitualHost Datei neu generiert.
Das hier einfach unter
"mysql_query("UPDATE confixx.kunden SET gesperrt='1' WHERE kunde='$result[kunde]'");"
einfügen:
mysql_query("UPDATE confixx.ftp SET gesperrt='1' WHERE kunde='$result[kunde]'");
mysql_query("UPDATE confixx.pop3 SET gesperrt='1' WHERE kunde='$result[kunde]'");
mysql_query("UPDATE confixx.allgemein SET newpwd='1', httpd='1'");
Bei dem User-Freischalt-Script muss das hier eingefügt werden:
mysql_query("UPDATE confixx.ftp SET gesperrt='0' WHERE 1");
mysql_query("UPDATE confixx.pop3 SET gesperrt='0' WHERE 1");
mysql_query("UPDATE confixx.allgemein SET newpwd='1', httpd='1'");
Eigentlich bräuchte man nur jeweils die letzte Zeile, aber die ftp Zeile sperrt dann auch noch die zusätzlichen FTP-Benutzer und die pop3 Zeile alle Postfächer des betreffenden Kunden.
Wenn ich es ausführe, dann wird zwar diesem Kunden der Zugriff auf das Confixx Menü gesperrt, aber die HTML Seite, wie auch Mail und FTP sind noch voll erreichbar.
Das dies auch gesperrt wird, muss man in der Tabelle "allgemein" in der Confixx DB noch 2 Werte von 0 auf 1 ändern, damit das counterscript merkt, dass sich was getan hat und dann die FTP-User und ApacheVitualHost Datei neu generiert.
Das hier einfach unter
"mysql_query("UPDATE confixx.kunden SET gesperrt='1' WHERE kunde='$result[kunde]'");"
einfügen:
mysql_query("UPDATE confixx.ftp SET gesperrt='1' WHERE kunde='$result[kunde]'");
mysql_query("UPDATE confixx.pop3 SET gesperrt='1' WHERE kunde='$result[kunde]'");
mysql_query("UPDATE confixx.allgemein SET newpwd='1', httpd='1'");
Bei dem User-Freischalt-Script muss das hier eingefügt werden:
mysql_query("UPDATE confixx.ftp SET gesperrt='0' WHERE 1");
mysql_query("UPDATE confixx.pop3 SET gesperrt='0' WHERE 1");
mysql_query("UPDATE confixx.allgemein SET newpwd='1', httpd='1'");
Eigentlich bräuchte man nur jeweils die letzte Zeile, aber die ftp Zeile sperrt dann auch noch die zusätzlichen FTP-Benutzer und die pop3 Zeile alle Postfächer des betreffenden Kunden.
Re: Confixx2 Trafficbegrenzung
> mysql_query("UPDATE confixx.allgemein SET newpwd='1', httpd='1'");
Im sperren Teil, öhm muß da nicht dann auch WHERE kunde='$result[kunde]' hinter ??? Ich denk frag ma...
Ich hab doch keine Ahnung davon *ggg*
Ich hätt da nochn script: http://www2.highspeedhost.de/load.html
Wer sowas braucht mal per pm oder ICQ melden dann mail ich das rüber weil is zu lang fürs Forum :)
Im sperren Teil, öhm muß da nicht dann auch WHERE kunde='$result[kunde]' hinter ??? Ich denk frag ma...
Ich hab doch keine Ahnung davon *ggg*
Ich hätt da nochn script: http://www2.highspeedhost.de/load.html
Wer sowas braucht mal per pm oder ICQ melden dann mail ich das rüber weil is zu lang fürs Forum :)
Re: Confixx2 Trafficbegrenzung
ne, WHERE muß da nicht hin. Weil es da nur ein Eintrag gibt und der sagt dem Counterscript das es jetzt was zu tun hat....
Re: Confixx2 Trafficbegrenzung
ahso, ich sag ja da versteh ich nix von *grins*Mezga wrote:ne, WHERE muß da nicht hin. Weil es da nur ein Eintrag gibt und der sagt dem Counterscript das es jetzt was zu tun hat....
Re: Confixx2 Trafficbegrenzung
ja, habs auch erst gemerkt wo Dein Script nicht getan hat. Hab übrigens noch ne kleine Verbesserung für die Nachricht die per E-Mail kommt.
$text = "Der Kunde $result[kunde] hat seinen erlaubten Traffic von ".($result[maxtransfer] / 1024)." MB um ".round((($traffic[gtransfer] - $result[maxtransfer]) / 1024),2)." MB überschritten und wurde deswegen automatisch gesperrt!" ;
Die kb angaben haben mir nicht gefallen :)
$text = "Der Kunde $result[kunde] hat seinen erlaubten Traffic von ".($result[maxtransfer] / 1024)." MB um ".round((($traffic[gtransfer] - $result[maxtransfer]) / 1024),2)." MB überschritten und wurde deswegen automatisch gesperrt!" ;
Die kb angaben haben mir nicht gefallen :)
Last edited by mezga on 2003-01-29 13:59, edited 1 time in total.
Re: Confixx2 Trafficbegrenzung
man kann dem Kunden ja theoretisch auch so eine mail zukommen lassen damit er auch was davon weiß :)
Last edited by cyberline on 2003-01-29 14:06, edited 1 time in total.
Re: Confixx2 Trafficbegrenzung
CyberLine wrote:schau mal in deine php.ini meist zu finden unter /etc/php.inieiSi wrote:da kommt beim ausführen folgender fehler:
kann mir einer weiter helfen? :)/usr/bin/php: error while loading shared libraries: libltdl.so.0: cannot load shared object file: No such file or directory
danke schonmal!
ob da eine Zeile steht:
extension=libltdl.so
Wenn ja mach ein ; davor und starte Apache neu, ansonsten würd ich sagen du mußt mal php neu Compilieren.
Wenn du es gar nicht mit php auf Kommandoebene hinbekommst, dann lösch die erste Zeile aus dem Script:
#!/usr/bin/php
und leg das script in einen Ordner, der über Internet erreichbar ist, und änder den Croneintrag wie folgt:
* * * * * lynx -dump http://meine.domain.de/check_traffic.php >/dev/null 2>&1
danke cyber, habe die libltdl.so einfach mal zu libltdl.so.0 kopiert, und siehe da, es läuft ... fast:
habe ich einfach mal $result[maxtransfer] in $result['maxtransfer'] umbennant, und nu funzts :DPHP Warning: Use of undefined constant maxtransfer - assumed 'maxtransfer' in ./check_traffic.php on line 12
PHP Warning: Use of undefined constant maxtransfer - assumed 'maxtransfer' in ./check_traffic.php on line 12
PHP Warning: Use of undefined constant maxtransfer - assumed 'maxtransfer' in ./check_traffic.php on line 12
PHP Warning: Use of undefined constant maxtransfer - assumed 'maxtransfer' in ./check_traffic.php on line 12
PHP Warning: Use of undefined constant maxtransfer - assumed 'maxtransfer' in ./check_traffic.php on line 12
PHP Warning: Use of undefined constant maxtransfer - assumed 'maxtransfer' in ./check_traffic.php on line 12
PHP Warning: Use of undefined constant maxtransfer - assumed 'maxtransfer' in ./check_traffic.php on line 12
PHP Warning: Use of undefined constant maxtransfer - assumed 'maxtransfer' in ./check_traffic.php on line 12
danke nochmal!
Re: Confixx2 Trafficbegrenzung
Moin...
Sieht ja recht nett aus was hier so gecodet worden ist...
Wie sieht denn jetzt das Endergebnis aus, und funktioniert das auch noch mit der aktuellen 2.0.8er Version?
Danke und Gruss
Bingo
Sieht ja recht nett aus was hier so gecodet worden ist...
Wie sieht denn jetzt das Endergebnis aus, und funktioniert das auch noch mit der aktuellen 2.0.8er Version?
Danke und Gruss
Bingo