Ws2009ba-i-5.datenbank
Aus Labor für Echtzeitsysteme
(Unterschied zwischen Versionen)
Version vom 08:28, 31. Okt. 2009 (bearbeiten) David (Diskussion | Beiträge) (→30.10.2009) ← Zum vorherigen Versionsunterschied |
Version vom 08:38, 2. Nov. 2009 (bearbeiten) (rückgängig) David (Diskussion | Beiträge) (→TODO) Zum nächsten Versionsunterschied → |
||
Zeile 3: | Zeile 3: | ||
*Script: nochmal drüber gucken. entschlacken ? | *Script: nochmal drüber gucken. entschlacken ? | ||
*Script: Anfaelligkeit gegen falsche Daten optimieren. | *Script: Anfaelligkeit gegen falsche Daten optimieren. | ||
- | *Import: Woher infos Gruppe, Datum, Uhrzeit, Ort, pc_id ? | + | *<s>Import: Woher infos Gruppe, Datum, Uhrzeit, Ort, pc_id ?</s> |
- | *Server Accounts | + | **Gruppe, Datum, Uhrzeit, Ort, pc_id aus messungs_id, ssh_login, timestamp |
- | *Foreignkey Constraint für Koordinaten xdrive_id | + | *<s>Server Accounts</s> |
- | *DB Hosten | + | *<s>Foreignkey Constraint für Koordinaten xdrive_id</s> |
+ | *<s>DB Hosten</s> | ||
*Anleitung zum Connecten!? | *Anleitung zum Connecten!? | ||
*ERD | *ERD |
Version vom 08:38, 2. Nov. 2009
Inhaltsverzeichnis |
Team log
TODO
- Script: nochmal drüber gucken. entschlacken ?
- Script: Anfaelligkeit gegen falsche Daten optimieren.
Import: Woher infos Gruppe, Datum, Uhrzeit, Ort, pc_id ?- Gruppe, Datum, Uhrzeit, Ort, pc_id aus messungs_id, ssh_login, timestamp
Server AccountsForeignkey Constraint für Koordinaten xdrive_idDB Hosten- Anleitung zum Connecten!?
- ERD
- Straßennamen einpflegen
- Präsipunkte
- Straßenname? -> Gebiet? Wurst?
Namenskonvention für Netdetectlogfiles
<kr/mg>_<Straßenname ohne Sonderzeichen>_<messungsnr> Gruppe (SSH User) -> 1 User pro Netbook mit Netbookname als loginname
Kür :
- mac <-> vendor zuordnung: http://standards.ieee.org/regauth/oui/oui.txt http://standards.ieee.org/regauth/oui/
- fertiges Script zum anlegen und fuellen der Tabelle: Bild:Oui.sql.gz
selbst erstellen:
#in bash: cd /tmp #downloaden wget http://standards.ieee.org/regauth/oui/oui.txt #Eintraege filtern cat oui.txt | grep 'base 16' > tmp.txt #insert erstellen ! falsch weil wiki irgendwas ersetzt :/ sed -e 's/'\/'\\/' -e 's/^/INSERT INTO oui VALUES \('\/g' -e 's/ (base 16)\t\t/'\, '\/g' -e 's/$/'\);/g' tmp.txt > insert.sql #in psql: #Tabelle erstellen CREATE TABLE oui ( mac varchar(6) primary key, name varchar(255)); #encoding setzen SET client_encoding to 'latin1'; #inserten... \i insert.sql #encoding zurueck setzen SET client_encoding to 'UTF8';
30.10.2009
- Server mit Postgres und phppgadmin installiert und konfiguriert.
- jeder der einen Datenbank Account braucht bitte bei Stephan/David melden.
- erster Test mit unseren Script erfolgreich. Daten stehen in der xdrive_tmp Datenbank.
29.10.2009
Script von Stephan erweitert. Nun werden die Daten in die Sql Datenbank geschrieben. Link
Edit: Vorher muss allerdings das Zusatzmodul pygresql installiert werden!
sudo apt-get install python-pygresql
27.10.2009
Ich habe ein kleines Pythonscript zum parsen des Logfiles geschrieben -> Script Das Script ist noch keinesfalls vollständig!
- liest die Daten aus dem Logfile in eine Liste ein
- Das erstellen der SQL Statements muss noch angepasst werden
- Bisher nur Testweise Dummy- Statements
Wird gestartet mit:
python filter.py <logfile>.ndd
SQL Statements sind dann in der Datei script.sql im selben Ordner wie das Filterscript zu finden.
26.10.2009
- Design der Tabellen, erstellen der create Befehle
- netdetect .ndd Format
- Um die Daten auf den Server zu kopieren haben wir eine Lösung mit winscp überlegt.
- als Server openssh-server. pro Netbook ein Account.
- Dafür wird ein Datenbankserver benötigt (EZS Labor?)
Design der Datenbank
Tabellen:
xdrive_t:
CREATE TABLE xdrive_t ( id SERIAL Primary Key, messung_id int, bssid varchar(12), essid varchar(32), verschluesselung_id int, kanal int, speed int, typ_id int, first_seen int, last_seen int );
messung_t
CREATE TABLE messung_t( id SERIAL Primary Key, datum date, uhrzeit time, ort varchar(255), pc_id int );
koordinaten_t
CREATE TABLE koordinaten_t ( id SERIAL Primary Key, xdrive_id int, latitude varchar(255), longitude varchar(255), signal_quality int );
verschluesselung_t
CREATE TABLE verschluesselung_t ( id SERIAL Primary Key, name varchar(10) ); INSERT INTO verschluesselung_t VALUES (0, 'OPEN'); INSERT INTO verschluesselung_t VALUES (1, 'WEP?'); INSERT INTO verschluesselung_t VALUES (2, 'WEP'); INSERT INTO verschluesselung_t VALUES (3, 'WPA'); INSERT INTO verschluesselung_t VALUES (4, 'WPA2'); INSERT INTO verschluesselung_t VALUES (5, 'WPA-WPA2');
typ_t
CREATE TABLE typ_t ( id SERIAL Primary Key, name varchar(10) ); INSERT INTO typ_t VALUES (0, 'BSS'); INSERT INTO typ_t VALUES (1, 'IBSS');
constraints
ALTER TABLE xdrive_t ADD CONSTRAINT messung_c FOREIGN KEY(messung_id) REFERENCES messung_t(id); ALTER TABLE xdrive_t ADD CONSTRAINT typ_c FOREIGN KEY (typ_id) REFERENCES typ_t(id); ALTER TABLE xdrive_t ADD CONSTRAINT versch_c FOREIGN KEY (verschluesselung_id) REFERENCES verschluesselung_t(id);
Aufsetzen der Datenbank
SQL Server: PostgreSQL
- sudo apt-get install postgresql
- sudo -u postgres createuser --superuser $USER
- createdb
- psql
PyGreSQL
- sudo apt-get install python-pygresql
- db = DB() braucht evt. login infos als Argument: http://www.pygresql.org/pg.html#connection-objects-pgobject
Skript zum Einpflegen von Daten
- TODO