Ws2009ba-i-5.datenbank

Aus Labor für Echtzeitsysteme

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Team log

TODO

Status:

Ort Gebiet Nr. Messung MIS(Gruppe) Status
MG I(nnenstadt) 1 - 6
MG I(nnenstadt) 2 - 6
MG I(nnenstadt) 3 - 4
MG I(nnenstadt) 4 - 6
MG I(nnenstadt) 5 - 6
MG I(nnenstadt) 6 - 4
MG W(ohngebiet) 1 - 5
MG W(ohngebiet) 2 - 5
MG W(ohngebiet) 3 - 5
MG W(ohngebiet) 4 - 5
MG W(ohngebiet) 5 - 5
MG W(ohngebiet) 6 - 5
MG W(ohngebiet) 7 - 5
MG W(ohngebiet) 8 - 5
MG W(ohngebiet) 9 - 5
MG W(ohngebiet) 10 - 5
MG G(ewerbegebiet) 1 M(ittag) 4
MG G(ewerbegebiet) 1 A(bend) 4
MG G(ewerbegebiet) 1 W(ochenende) 4
MG G(ewerbegebiet) 2 M(ittag) 4
MG G(ewerbegebiet) 2 A(bend) 4
MG G(ewerbegebiet) 2 W(ochenende) 4
MG G(ewerbegebiet) 3 M(ittag) 1
MG G(ewerbegebiet) 3 A(bend) 1
MG G(ewerbegebiet) 3 W(ochenende) 1
MG G(ewerbegebiet) 4 M(ittag) 1
MG G(ewerbegebiet) 4 A(bend) 1
MG G(ewerbegebiet) 4 W(ochenende) 1
MG G(ewerbegebiet) 5 M(ittag) 1
MG G(ewerbegebiet) 5 A(bend) 1
MG G(ewerbegebiet) 5 W(ochenende) 1
MG G(ewerbegebiet) 6 M(ittag) 1
MG G(ewerbegebiet) 6 A(bend) 1
MG G(ewerbegebiet) 6 W(ochenende) 1
MG G(ewerbegebiet) 7 M(ittag) 5
MG G(ewerbegebiet) 7 A(bend) 5
MG G(ewerbegebiet) 7 W(ochenende)
MG G(ewerbegebiet) 8 M(ittag)
MG G(ewerbegebiet) 8 A(bend)
MG G(ewerbegebiet) 8 W(ochenende)
KR I(nnenstadt) 1 - 2
KR I(nnenstadt) 2 - 2
KR I(nnenstadt) 3 - 4
KR I(nnenstadt) 4 - 5
KR I(nnenstadt) 5 - 6
KR I(nnenstadt) 6 - 6
KR W(ohngebiet) 1 - 2
KR W(ohngebiet) 2 - 2
KR W(ohngebiet) 3 - 2
KR W(ohngebiet) 4 - 2
KR W(ohngebiet) 5 - 2
KR W(ohngebiet) 6 - 2
KR W(ohngebiet) 7 - 2
KR W(ohngebiet) 8 - 2
KR W(ohngebiet) 9 - 2
KR W(ohngebiet) 10 - 2
KR G(ewerbegebiet) 1 M(ittag) 3
KR G(ewerbegebiet) 1 A(bend) 3
KR G(ewerbegebiet) 1 W(ochenende) 3
KR G(ewerbegebiet) 2 M(ittag) 3
KR G(ewerbegebiet) 2 A(bend) 3
KR G(ewerbegebiet) 2 W(ochenende) 3
KR G(ewerbegebiet) 3 M(ittag) 3
KR G(ewerbegebiet) 3 A(bend) 3
KR G(ewerbegebiet) 3 W(ochenende) 3
KR G(ewerbegebiet) 4 M(ittag) 3
KR G(ewerbegebiet) 4 A(bend) 3
KR G(ewerbegebiet) 4 W(ochenende) 3
KR G(ewerbegebiet) 5 M(ittag) 6
KR G(ewerbegebiet) 5 A(bend) 6
KR G(ewerbegebiet) 5 W(ochenende) 6
KR G(ewerbegebiet) 6 M(ittag) 6
KR G(ewerbegebiet) 6 A(bend) 6
KR G(ewerbegebiet) 6 W(ochenende) 6
KR G(ewerbegebiet) 7 M(ittag) 4
KR G(ewerbegebiet) 7 A(bend) 4
KR G(ewerbegebiet) 7 W(ochenende) 4
KR G(ewerbegebiet) 8 M(ittag) 5
KR G(ewerbegebiet) 8 A(bend) 5
KR G(ewerbegebiet) 8 W(ochenende) 5

Checkliste:

Datei Zwei mal ca Minuten
kr_g013a Erkennbar 24
kr_g013m Erkennbar 40
kr_g013w Erkennbar 25
kr_g023a Erkennbar 60
kr_g023m Erkennbar 50
kr_g023w Erkennbar 45
kr_g033a Erkennbar 25
kr_g033m Erkennbar 40
kr_g033w Erkennbar 25
kr_g056m Erkennbar 55
kr_g056w Erkennbar 50
kr_g066m Erkennbar 60
kr_g066w Erkennbar 60
kr_g082a NEIN 30
kr_g082m NEIN 30
kr_i012m Erkennbar 65
kr_i032m Erkennbar 55
kr_i033w Erkennbar 55
kr_w012m Manipuliert - Keine Punkte auf dem Rückweg nur Startpunkt kommt 2mal vor 35
kr_w022m Erkennbar 50
kr_w032m Test? 1
kr_w042m Erkennbar 60
kr_w052m Erkennbar 70
kr_w062m Erkennbar 72 Netze bei Start 35
kr_w072m Erkennbar 23
kr_w082w Erkennbar 105
kr_w092w Verdacht - Unterschiedliche Tage 20
kr_w102w Verdacht - Unterschiedliche Tage 10
KRG05W6 Zwei Runden 50
KRG06W6 Erkennbar 60
mg_g014a Nicht eindeutig 50
mg_g014m Nicht eindeutig 50
mg_g014w Nicht eindeutig 50
mg_g024a Erkennbar 80
mg_g024m Erkennbar 90
mg_g024w Erkennbar 80
mg_g031a Erkennabr 60
mg_g031m NEIN 15
mg_g031w NEIN 25
mg_g041a NEIN 20
mg_g041m NEIN 20
mg_g041w NEIN 30
mg_g051a Erkennbar 40
mg_g051m NEIN 20
mg_g051w Erkennbar 33
mg_g061a Leichte Zweifel 45
mg_g061m NEIN 35
mg_g061w NEIN 40
mg_i016m Nur halb 50
mg_i026m NEIN 60
mg_i034m NEIN 23
mg_i046m Nur halb 35
mg_i056m NEIN 30
mg_i064m NEIN 35
mg_w01_5m Erkennbar 60
mg_w02_5m Nur halb 40
mg_w03_5m Erkennbar 55
mg_w04_5m NICHT VERWERTBAR 5
w_05_6_m Erkennbar 50
w_06_6_m Erkennbar 55

19.11.2009

  • Usermanagment notes:
\du :liste der rollen
http://www.postgresql.org/docs/8.4/interactive/sql-grant.html
http://www.postgresql.org/docs/8.4/interactive/sql-revoke.html
http://www.postgresql.org/docs/8.4/interactive/sql-createrole.html
http://stackoverflow.com/questions/760210/how-do-you-create-a-read-only-user-in-postgresql


//Idee: alle Rechte nehmen nur das erlauben was noetig ist.

//public alle rechte nehmen:
REVOKE all ON koordinaten_t FROM PUBLIC;
REVOKE all ON messung_t FROM PUBLIC;
REVOKE all ON typ_t FROM PUBLIC;
REVOKE all ON verschluesselung_t FROM PUBLIC;
REVOKE all ON xdrive_t FROM PUBLIC;

//...und fuer db:
Revoke all on database xdrive_tmp from public;

//show all roles:
select * from pg_roles;

//create role connect only "Gruppe" erstellen
create role xdrive;

//allow to connect
GRANT CONNECT on DATABASE xdrive_tmp to xdrive_user;

//allow to select 
GRANT SELECT ON koordinaten_t TO xdrive_user ;
GRANT SELECT ON messung_t TO xdrive_user ;
GRANT SELECT ON typ_t TO xdrive_user ;
GRANT SELECT ON verschluesselung_t TO xdrive_user ;
GRANT SELECT ON xdrive_t to xdrive_user ;

//damit user view erstellen kann
GRANT create on SCHEMA public to public;

//create user with password asdf and add to "Group" xdrive_user
CREATE ROLE sq06 WITH login password 'asdf' in role xdrive_user;

// hiermit kann das pw geaendert werden pgppgadmin gibt zwar einen fehler aus aber es funtioniert.
ALTER USER sq06 WITH PASSWORD 'hu8jmn3';

Serverarbeiten

Ich habe einen neuen User angelegt -> nddcollector in dessen Homeverzeichnis, mithilfe von Davids Script die ndd Dateien der sqx User gesammelt werden. Zudem habe ich für root einen Cronjob erstellt der Täglich um 3 Uhr nachts das Script im Homeverzeichniss von nddcollector (zum sammeln der ndd Logfiles) ausführt. Um es festzuhalten, der link zum erstellen von Cronjobs -> link

Nachtrag: Script speichert nun auch Logfiles mit den gefundenen Pfaden in der Form <datum>_<uhrzeit>_nddcollector.log im Unterordner log vom User nddcollector.

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,
    filename varchar (255)
    );

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