Ws2009ba-i-5.datenbank

Aus Labor für Echtzeitsysteme

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Team log

TODO

  • Script: nochmal drüber gucken. entschlacken ?
  • Script: Anfaelligkeit gegen falsche Daten optimieren.

Update zur WinSCP Anleitung

Die Anleitung zu WinSCP wurde aktualisiert da ein kleiner Fehler mit WindowsXP aufgetreten ist. Nun soltle alles so funktionieren wie in der Anleitung beschrieben. -> WinSCP_Kurzanleitung

Offene Fragen an die Gladbacher Gruppe

  • Wird ein Messplan mit Messungsnummern erstellt?

Präsentation der Datenbank

  • Datenbankserver
    • Ubuntu Linux
    • Postgresql
    • Script zum Parsen der Ndetectlogfiles
    • Namenskonvention
      • <kr/mg>_<Straßenname ohne Sonderzeichen>_<messungsnr>
  • User Accounts
    • Pro Netbook ein Useraccount auf dem Server (Netbookname)
    • Ein Useraccount in der Datenbank
  • ERD
    • Bild:Xdrive.jpeg
  • phppgadmin
    • Bild:Phppgadmin.jpeg
  • Serverzugang über WinSCP
    • Bild:winscp_connect.png
    • Bild:Winscp_copied.PNG

WinSCP Kurzanleitung

Hier eine Kurzanleitung zu WinSCP -> WinSCP_Kurzanleitung

2.11.2009 Vorschlag Usermanagement

  • Server User werden im Homeverzeichnis eingesperrt.
    • Konfigurationsmöglichkeit in ssh.conf?
  • DBUser bekommen sämtliche rechte entzogen
REVOKE ALL PRIVILEGES ON DATABASE xdrive_tmp FROM xdrive_test;
  • DBUser bekommen nur leserechte auf bestimmte Tabellen (Views)
GRANT SELECT ON xdrive_t to xdrive_test;

Namenskonvention für Netdetectlogfiles

<kr/mg>_<Straßenname ohne Sonderzeichen>_<messungsnr> Gruppe (SSH User) -> 1 User pro Netbook mit Netbookname als loginname

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),
    strasse 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

Skript zum Einpflegen von Daten

  • TODO

Kür :

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';
Persönliche Werkzeuge