Ws2009ba-i-5.datenbank

Aus Labor für Echtzeitsysteme

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
Version vom 18:29, 5. Nov. 2009 (bearbeiten)
David (Diskussion | Beiträge)
(TODO)
← Zum vorherigen Versionsunterschied
Version vom 17:16, 10. Nov. 2009 (bearbeiten) (rückgängig)
Stephan S. (Diskussion | Beiträge)

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.
 +
 +=== Kurzanleitung zu PuTTY ===
 +Hier eine Kurzanleitung zu Putty -> [http://qbesmine.de/stuff/putty_kurzanleitung.pdf PuTTY_Kurzanleitung]
=== Update zur WinSCP Anleitung === === Update zur WinSCP Anleitung ===

Version vom 17:16, 10. Nov. 2009

Inhaltsverzeichnis

Team log

TODO

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

Kurzanleitung zu PuTTY

Hier eine Kurzanleitung zu Putty -> PuTTY_Kurzanleitung

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