gibt es alle dateien zum laden
Posted: 2003-05-20 11:08
hab auch das problem das mein transfervolumen nicht angezeigt wird. geht das mit euren dateien? gibt es alle dateien komplett irgendwo zum laden mit anleitung?
Resources for System-Administrators
https://www.rootforum.org/forum/
ich hab das ganz einfach gelöst:CyberLine wrote:man kann dem Kunden ja theoretisch auch so eine mail zukommen lassen damit er auch was davon weiß :)
Code: Select all
$text = "Sie haben ihren erlaubten Traffic von $result[maxtransfer] kb überschritten und wurden gesperrt!";
mail("$result[emailadresse]","Trafficüberschreitung ihres Webspaceaccounts",$text,"From: webmaster@xxx.netnReply-To: webmaster@xxx.netnX-Mailer: PHP/" . phpversion());Hallo,
Mezga wrote: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.
und#!/usr/bin/php
<?
$dat = mysql_connect ("localhost","DBuser","DBpass");
$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_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'");
$text1 = "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!" ;
mail("wolfhenk@mydomain.de","Trafficüberschreitung $result[kunde]",$text1,"From: webmaster@mydomain.denReply-To: noreply@mydomain.denX-Mailer: PHP/" . phpversion());
$text2 = "Sehr geehrter Kunde,/nSie haben ihren erlaubten Traffic von ".($result[maxtransfer] / 1024)." MB um ".round((($traffic[gtransfer] - $result[maxtransfer]) / 1024),2)." MB überschritten./nIhr Webspace auf unserem Server wurde deswegen automatisch gesperrt!/nBitte setzen Sie sich mit uns in Verbindung, wenn Sie vor Ablauf des Monatsendes wieder freigeschaltet werden möchten/nSie erreichen uns unter +49 815 4711/nMit freundlichen Grüßen/nWolfHenk";
mail("$result[emailadresse]","Trafficüberschreitung ihres Webspaceaccounts",$text2,"From: webmaster@mydomain.denReply-To: webmaster@mydomain.denX-Mailer: PHP/" . phpversion());
}
}
mysql_close($dat);
?>
wobei: Wenn Traffic_check per Cron alle 5 Minuten läuft krieg ich UND der Kunde alle 5 Minuten ne Mail.#!/usr/bin/php
<?
$db = mysql_connect("localhost","DBuser","DBpass");
mysql_query("UPDATE confixx.kunden SET gesperrt='0' WHERE 1");
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'");
mysql_close($db);
mail("webmaster@mydomain.de","Trafficsperren geöffnet","Gesperrte Kunden wurden wieder geöffnet, bitte kontrollieren.","from: webmaster@mydomain.de");
?>
mysql_query("UPDATE confixx.kunden SET gesperrt='1' WHERE kunde='$result[kunde]'");Was muss ich nun nehmen, um was zu ändern?
HTTP:
FTP:
POP3:
Confixx-Menü:
Hi, ja mit dem Problem hab ich auch bis jetzt wegen fehlender PHP Kenntnisse gelebt. Aber inzwieschen kann ich PHP und MySQL relativ gut daher:WolfHenk wrote:wobei: Wenn Traffic_check per Cron alle 5 Minuten läuft krieg ich UND der Kunde alle 5 Minuten ne Mail.
Ich denke man sollte das noch erweitern um die Abfrage gesperrt = 0 aus der confixx.kunden. Leider hab ich nur wenig Plan von MySql und PHP, deswegen bitte ich mal hier um nen Vorschlag, den ich gerne teste und hier auch die Ergebnisse veröffentliche.
Wolfram
Code: Select all
$query = mysql_query("SELECT * FROM confixx.kunden ORDER BY kunde");
Code: Select all
$query = mysql_query("SELECT * FROM confixx.kunden WHERE gesperrt='0' ORDER BY kunde");
Code: Select all
$query = mysql_query("SELECT * FROM confixx.kunden WHERE gesperrt='0' AND anbieter='res2' ORDER BY kunde");
Code: Select all
#!/usr/bin/php
<?
$dat = mysql_connect ("localhost","DBuser","DBpass");
$query = mysql_query("SELECT * FROM confixx.kunden WHERE gesperrt='0' 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_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'");
$text1 = "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!" ;
mail("wolfhenk@mydomain.de","Trafficüberschreitung $result[kunde]",$text1,"From: [email]webmaster@mydomain.de[/email]nReply-To: [email]noreply@mydomain.de[/email]nX-Mailer: PHP/" . phpversion());
$text2 = "Sehr geehrter Kunde,
Sie haben ihren erlaubten Traffic von ".($result[maxtransfer] / 1024)." MB um ".round((($traffic[gtransfer] - $result[maxtransfer]) / 1024),2)." MB überschritten.
Ihr Webspace auf unserem Server wurde deswegen automatisch gesperrt!
Bitte setzen Sie sich mit uns in Verbindung, wenn Sie vor Ablauf des Monats wieder freigeschaltet werden möchten.
Sie erreichen uns unter +49 (0)815 4711
Mit freundlichen Grüßen
Meine Wenigkeit";
mail("$result[emailadresse]","Trafficüberschreitung ihres Webspaceaccounts",$text2,"From: [email]webmaster@mydomain.de[/email]nReply-To: [email]webmaster@mydomain.de[/email]nX-Mailer: PHP/" . phpversion());
}
}
mysql_close($dat);
?>
Code: Select all
#!/usr/bin/php
<?
$db = mysql_connect("localhost","DBuser","DBpass");
mysql_query("UPDATE confixx.kunden SET gesperrt='0' WHERE 1");
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'");
mysql_close($db);
mail("webmaster@mydomain.de","Trafficsperren geöffnet","Gesperrte Kunden wurden wieder geöffnet, bitte kontrollieren.","from: [email]webmaster@mydomain.de[/email]");
?>
Code: Select all
10,20,30,40,50,00 * * * * root path/to/the/file/traffic.php > /dev/null 2
00 00 01 * * root path/to/the/file/traffic_unlock.php Eine Mail an mich:Sehr geehrter Kunde,
Sie haben ihren erlaubten Traffic von 1 MB um 0.07 MB überschritten.
Ihr Webspace auf meinem Server wurde deswegen automatisch gesperrt!
Bitte setzen Sie sich mit mir in Verbindung, wenn Sie vor Ablauf des Monats wieder freigeschaltet werden möchten. Sie erreichen mich unter +49 YYY YYY XXXX
Mit freundlichen Grüßen
Dein Serveradmin
Der Kunde web1 hat seinen erlaubten Traffic von 1 MB um 0.07 MB überschritten und wurde deswegen automatisch gesperrt!
Ich meinte das :)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 :)
Aufwärm, es muss ja überall wo @mydomain.de steht meine Emailadresse rein, aber wie bekommt das Script dann die Emaialdresse des Kuden raus, an die die Mail gehen muss ?WolfHenk wrote:ok, ich hab meine Sach nu am Laufen.
Meine Files sehen so aus:
traffic_check.phpund#!/usr/bin/php
<?
$dat = mysql_connect ("localhost","DBuser","DBpass");
$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_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'");
$text1 = "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!" ;
mail("wolfhenk@mydomain.de","Trafficüberschreitung $result[kunde]",$text1,"From: webmaster@mydomain.denReply-To: noreply@mydomain.denX-Mailer: PHP/" . phpversion());
$text2 = "Sehr geehrter Kunde,/nSie haben ihren erlaubten Traffic von ".($result[maxtransfer] / 1024)." MB um ".round((($traffic[gtransfer] - $result[maxtransfer]) / 1024),2)." MB überschritten./nIhr Webspace auf unserem Server wurde deswegen automatisch gesperrt!/nBitte setzen Sie sich mit uns in Verbindung, wenn Sie vor Ablauf des Monatsendes wieder freigeschaltet werden möchten/nSie erreichen uns unter +49 815 4711/nMit freundlichen Grüßen/nWolfHenk";
mail("$result[emailadresse]","Trafficüberschreitung ihres Webspaceaccounts",$text2,"From: webmaster@mydomain.denReply-To: webmaster@mydomain.denX-Mailer: PHP/" . phpversion());
}
}
mysql_close($dat);
?>
traffic_unlock.phpwobei: Wenn Traffic_check per Cron alle 5 Minuten läuft krieg ich UND der Kunde alle 5 Minuten ne Mail.#!/usr/bin/php
<?
$db = mysql_connect("localhost","DBuser","DBpass");
mysql_query("UPDATE confixx.kunden SET gesperrt='0' WHERE 1");
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'");
mysql_close($db);
mail("webmaster@mydomain.de","Trafficsperren geöffnet","Gesperrte Kunden wurden wieder geöffnet, bitte kontrollieren.","from: webmaster@mydomain.de");
?>
Ich denke man sollte das noch erweitern um die Abfrage gesperrt = 0 aus der confixx.kunden. Leider hab ich nur wenig Plan von MySql und PHP, deswegen bitte ich mal hier um nen Vorschlag, den ich gerne teste und hier auch die Ergebnisse veröffentliche.
--
Ach das warums bei mir net ging: Ich hab Debian und mein Socket ist nicht /tmp/mysql.sock sondern /tmp/mysqld.sock.
Ich habe entsprechend ein symlink namens /tmp/mysql.sock erstellt, was nach /tmp/mysqld.sock verweist...
Wolfram