www.ProFTPD.de
13. März 2007, 20:30:16 *
Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge
News: SMF - Neu installiert!
 
   Übersicht   Hilfe Suche Login Registrieren  
Seiten: [1]   Nach unten
  Drucken  
Autor Thema: Problem mit SQLNamedQuery  (Gelesen 173 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
freq.9
ProFTPD
*
Offline Offline

Beiträge: 29

154694464 freq9@hotmail.com
Profil anzeigen WWW
« am: 02. Oktober 2005, 19:22:17 »

Ich bin dabei mir eine Statistik für die FTP Zugriffe zu basteln. Es kann zwar
sein, dass es schon welche gibt aber ich will zudem auch etwas in Sachen
ProFTPd lernen. Also habe ich eine Tabelle erstellt die wie folgt aussieht:

Code:
SELECT * FROM ftp_statistics;
+--------------+-------+--------+
| name         | f_int | f_char |
+--------------+-------+--------+
| access_count |     0 | NULL   |
| on_monday    |     0 | NULL   |
| on_tuesday   |     0 | NULL   |
| on_wednesday |     0 | NULL   |
| on_thursday  |     0 | NULL   |
| on_friday    |     0 | NULL   |
| on_saturday  |     0 | NULL   |
| on_sunday    |     0 | NULL   |
| in_january   |     0 | NULL   |
| in_february  |     0 | NULL   |
| in_march     |     0 | NULL   |
| in_april     |     0 | NULL   |
| in_may       |     0 | NULL   |
| in_june      |     0 | NULL   |
| in_july      |     0 | NULL   |
| in_august    |     0 | NULL   |
| in_september |     0 | NULL   |
| in_october   |     0 | NULL   |
| in_november  |     0 | NULL   |
| in_december  |     0 | NULL   |
+--------------+-------+--------+
20 rows in set (0.00 sec)


Die Tabelle ist so aufgebaut, dass ich Integerwerte sowie Zeichen eingeben kann.
Diese Trennung habe ich gewählt, da die Sortierung von Zahlen in VARCHAR Spalten
nicht richtig ist. Und ich habe 3 Queries erstellt in der /etc/proftpd.conf

Code:
# Statistic
SQLNamedQuery   day     UPDATE   "f_int=f_int+1 WHERE name=CONCAT('on_', dayname(now()))"     ftp_statistics
SQLNamedQuery   month   UPDATE   "f_int=f_int+1 WHERE name=CONCAT('in_', monthname(now()))"   ftp_statistics
SQLNamedQuery   login   UPDATE   "f_int=f_int+1 WHERE name='access_count'"                    ftp_statistics


die sollten doch nun wie folgt aussehen:

Code:
UPDATE ftp_statistics SET f_int=f_int+1 WHERE name=CONCAT('on_', dayname(now()));
UPDATE ftp_statistics SET f_int=f_int+1 WHERE name=CONCAT('in_', monthname(now()));
UPDATE ftp_statistics SET f_int=f_int+1 WHERE name='access_count';


Nebenbei:
CONCAT('on_', LOWER(dayname(now())))     --> on_sunday
CONCAT('in_', LOWER(monthname(now())))   --> in_october

Wenn ich nun aber zum Server verbinde und mir die Daten in der Tabelle anschaue
hat sich da nichts geändert. In meiner Log-Datei /var/log/proftpd/sql steht
auch nichts, dass da was fehlgeschlagen ist.

Wieso wird da nichts an der Tabelle geändert?
Gespeichert
freq.9
ProFTPD
*
Offline Offline

Beiträge: 29

154694464 freq9@hotmail.com
Profil anzeigen WWW
« Antwort #1 am: 05. Oktober 2005, 19:25:02 »

Hat denn da keiner ne Ahnung wieso da nichts passiert?
Gespeichert
Wörsty
Moderator
ProFTPD
*****
Offline Offline

Beiträge: 1602


50772603
Profil anzeigen WWW E-Mail
« Antwort #2 am: 07. Oktober 2005, 21:06:43 »

Ich poste mal meine Konfiguration.
Vielleicht hilft dir das. Smiley

Code:
 SQLLog * history
  SQLLog PASS  updatecount
  SQLLog PASS  letzter_zugriff
  SQLLog DELE  delfile
  SQLLog RETR  getfile
  SQLLog *  history
  SQLNamedQuery history     INSERT "'%U', '%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'ok', NULL" history
  SQLNamedQuery history_err INSERT "'%U', '%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'nicht ok', NULL" history
  SQLNamedQuery updatecount     UPDATE "ftp_login_count=ftp_login_count+1 WHERE loginname='%u'" users
  SQLNamedQuery letzter_zugriff UPDATE "last_ftp_login = now() where loginname = '%u'" users
  SQLNamedQuery delfile         UPDATE "deleted ='ja' where loginname = '%u' and dateiname = '%F'" ftp_query
  SQLNamedQuery getfile         UPDATE "downloadcount = downloadcount + 1, last_download = now() where fullpath = '%f' and loginname = '%u'" ftp_query
  SQLNamedQuery history         INSERT "'%U', '%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'ok', NULL" ftp_history
  SQLNamedQuery history_err     INSERT "'%U', '%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'nicht ok', NULL" ftp_history


Code:
#
# Table structure for table 'ftp_history'
#

DROP TABLE IF EXISTS `ftp_history`;
CREATE TABLE `ftp_history` (
  `loginname` varchar(30) default NULL,
  `identname` varchar(30) default NULL,
  `filename` text,
  `size` bigint(20) default NULL,
  `host` varchar(80) default NULL,
  `ip` varchar(16) default NULL,
  `aktion` varchar(255) default NULL,
  `dauer` varchar(10) default NULL,
  `zeit_lokal` datetime default NULL,
  `status` set('ok','nicht ok','test') default NULL,
  `ui` bigint(20) NOT NULL auto_increment,
  PRIMARY KEY  (`ui`)
) TYPE=MyISAM COMMENT='Ausgeführte FTP-Befehle (FTP-Warteschlange)';


#
# Table structure for table 'ftp_query'
#

DROP TABLE IF EXISTS `ftp_query`;
CREATE TABLE `ftp_query` (
  `ftp_query_id` int(10) unsigned NOT NULL auto_increment,
  `dateiname` char(255) NOT NULL default '',
  `user_id` int(10) unsigned NOT NULL default '0',
  `query_date` datetime NOT NULL default '0000-00-00 00:00:00',
  `downloadcount` smallint(5) unsigned NOT NULL default '0',
  `last_download` datetime default NULL,
  `byte` int(10) unsigned NOT NULL default '0',
  `files_id` int(10) unsigned default NULL,
  `loginname` char(255) NOT NULL default '',
  `deleted` enum('nein','ja') NOT NULL default 'nein',
  `fullpath` char(255) NOT NULL default '',
  PRIMARY KEY  (`ftp_query_id`),
  UNIQUE KEY `ftp_query_id` (`ftp_query_id`),
  KEY `ftp_query_id_2` (`ftp_query_id`)
) TYPE=MyISAM COMMENT='Dateien in den FTP-Warteschlagen';

#
# Table structure for table 'history'
#

DROP TABLE IF EXISTS `history`;
CREATE TABLE `history` (
  `loginname` varchar(30) default NULL,
  `filename` text,
  `size` bigint(20) default NULL,
  `host` varchar(80) default NULL,
  `ip` varchar(16) default NULL,
  `aktion` varchar(255) default NULL,
  `dauer` varchar(10) default NULL,
  `zeit_lokal` datetime default NULL,
  `status` set('ok','nicht ok') default NULL,
  `ui` bigint(20) NOT NULL auto_increment,
  PRIMARY KEY  (`ui`),
  KEY `zeit` (`zeit_lokal`),
  KEY `loginname` (`loginname`)
) TYPE=MyISAM COMMENT='FTP-Befehlshistory für den Server Port 21';
Gespeichert

RedHat 8.0 (2.4er Kernel)
proftpd 1.2.10
-mod_sql_mysql
-mow_wrap
-mod_exec
-mod_ifsession[/size]
freq.9
ProFTPD
*
Offline Offline

Beiträge: 29

154694464 freq9@hotmail.com
Profil anzeigen WWW
« Antwort #3 am: 08. Oktober 2005, 15:01:17 »

Jau werd ich mir später mal anschauen. Das mit dem Loggen sieht recht interessant aus. Nur muss ich erst meinen Server neu aufsetzen. Ein böser yum-Befehl hat mir heute Nacht meinen Server zerschossen. Okay laufen tut er noch nur wurden an die 120 Programme und Tools gelöscht und von daher ist mir eine Neuinstallation lieber.
Gespeichert
freq.9
ProFTPD
*
Offline Offline

Beiträge: 29

154694464 freq9@hotmail.com
Profil anzeigen WWW
« Antwort #4 am: 11. Oktober 2005, 03:24:42 »

Okay nun gehts Zwinkernd Nun werd ich mir mal in den nächsten Tagen was nettes basteln um die Daten zu visualisieren :-)
Gespeichert
Seiten: [1]   Nach oben
  Drucken  
 
Gehe zu:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS
Seite erstellt in 0.058 Sekunden mit 17 Zugriffen.