www.ProFTPD.de

ProFTPD => ProFTPD - Deutsch => Thema gestartet von: Pfead am 20. November 2004, 13:43:48



Titel: MySQL Quota will nicht
Beitrag von: Pfead am 20. November 2004, 13:43:48
Hallo,

ich habe ein Login System mit MySQL aufgebaut. Man kann sich ohne Probleme einloggen und kann Dateien hoch- und runterladen.

Gerade versuche ich Quota auf MySQL Basis hinzuzufügen.

Ich bin nach dem Tutorial von http://www.castaglia.org/proftpd/modules/mod_quotatab_sql.html vorgegangen.

Ich habe nun die Tabelle "quotalimits" und "quotatallies".
In "quotalimits" habe ich folgendes stehen:
Zitat
`quotalimits` VALUES ('testman', 'all', 'true', 'soft', 1, 1, 1, 1, 1, 1);


In quotatallies:
Zitat
`quotatallies` VALUES ('testman', 'all', 0, 0, 0, 0, 0, 0);


Meine Konfiguration lautet:

Zitat

SQLConnectInfo                  serv@localhost root test123
SQLAuthenticate                 users
SQLAuthTypes                    crypt
SQLUserInfo                     users username pwd uid gid mountpoint shell
SQLGroupInfo                    groups groupname gid members
SQLLog                          PASS updatecount
SQLNamedQuery                   updatecount UPDATE "last_ftp_login=unix_timestamp() WHERE username='%u'" users
SQLLog                          RETR,STOR transfer1
SQLNamedQuery                   transfer1 INSERT "'', '%U', '%b', unix_timestamp()" traffic_ftp

QuotaEngine on
QuotaShowQuotas on
QuotaLimitTable sql:/SELECT-SQLNamedQuery
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally

SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM quotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" quotatallies

SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies


Ausgabe von quote SITE QUOTA:
Zitat
ftp> quote SITE QUOTA
202 No quotas in effect
ftp>



Ich bin mit meinem Latein am Ende :( Kann mir bitte er helfen?


Titel: MySQL Quota will nicht
Beitrag von: Pfead am 23. November 2004, 11:55:25
Keiner eine Ahnung ? :(


Titel: MySQL Quota will nicht
Beitrag von: stonki am 23. November 2004, 12:16:48
was sagt den das Debug log bzw. die SQLlogFile Ausgabe ?


Titel: MySQL Quota will nicht
Beitrag von: Pfead am 23. November 2004, 19:53:50
Hallo,

wo kann ich einstellen, dass der Proftpd mir diese Logs anlegt? Ich habe nur die xferlog, die ja fast standart ist.

Ich habe den Debugmodus laufen (proftpd -n -d 9), bringt mir aber keine sinnvollen Ausgaben.

MySQL Userverwaltung funktioniert ohne Probleme. Muss ich die Verbindung zum MySQL nochmal herstellen? Eigentlich nicht oder?

Pfead


Titel: MySQL Quota will nicht
Beitrag von: Wörsty am 24. November 2004, 15:56:30
Info 1: SQLLogfile (http://www.proftpd.de/index.php?id=28&directive_name=sqllogfile)
Info 2: Debug: proftpd -nd5 ist erstmal besser
Info 3: QuotaLog (http://www.proftpd.de/index.php?id=28&directive_name=quotalog)


Titel: MySQL Quota will nicht
Beitrag von: Pfead am 25. November 2004, 22:58:18
Hallo,

so ich habe nun endlich die Lösung. Dank der Logfiles konnte ich das Problem lösen.

1) Ich hatte einen Fehler in der Konfiguration
2) Der Username wurde nicht angenommen ( %{0} funktioniert nicht immer)

zu 1)

Zitat
SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM quotalimits WHERE name = '%u' AND quota_type = '%{1}'"

SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM quotatallies WHERE name = '%u' AND quota_type = '%{1}'"

SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%u' AND quota_type = '%{7}'" quotatallies

SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies


zu 2)
Statt %{0} einfach %u verwenden, das funktioniert auch.

Danke an alle die mir geholfen haben.

mfg Pfead