Ws2009ba-i-5.datenbank

Aus Labor für Echtzeitsysteme

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
Version vom 14:58, 29. Okt. 2009 (bearbeiten)
Stephan S. (Diskussion | Beiträge)

← Zum vorherigen Versionsunterschied
Aktuelle Version (16:50, 2. Dez. 2009) (bearbeiten) (rückgängig)
David (Diskussion | Beiträge)
(Status:)
 
(Der Versionsvergleich bezieht 46 dazwischen liegende Versionen mit ein.)
Zeile 1: Zeile 1:
=Team log= =Team log=
==TODO== ==TODO==
-*Script: nochmal drüber gucken. entschlacken ?+===Status:===
-*Script: Anfaelligkeit gegen falsche Daten optimieren.+{| class="wikitable sortable" border=1
-*Import: Woher infos Gruppe, Datum, Uhrzeit, Ort, pc_id ?+|-
-*Server Accounts+! Ort !! Gebiet !! Nr. !! Messung !! MIS(Gruppe) !! Status
-*Foreignkey Constraint für Koordinaten xdrive_id+|-
-*DB Hosten+| MG || I(nnenstadt) || 1 || - || 6 || siehe Checkliste mg_i016m
-*Anleitung zum Connecten!?+|-
-*ERD+| MG || I(nnenstadt) || 2 || - || 6 || siehe Checkliste mg_i026m
-*Straßennamen einpflegen+|-
-*Präsipunkte+| MG || I(nnenstadt) || 3 || - || 4 || siehe Checkliste mg_i036m
-*Straßenname? -> Gebiet? Wurst?+|-
 +| MG || I(nnenstadt) || 4 || - || 6 || siehe Checkliste mg_i046m
 +|-
 +| MG || I(nnenstadt) || 5 || - || 6 || siehe Checkliste mg_i056m
 +|-
 +| MG || I(nnenstadt) || 6 || - || 4 || siehe Checkliste mg_i066m
 +|-
 +| MG || W(ohngebiet) || 1 || - || 5 || style="background:green" | In DB mg_w01_5m
 +|-
 +| MG || W(ohngebiet) || 2 || - || 5 || nicht in DB mg_w02_5m
 +|-
 +| MG || W(ohngebiet) || 3 || - || 5 || style="background:green" | In DB mg_w03_5m
 +|-
 +| MG || W(ohngebiet) || 4 || - || 5 || siehe Checkliste mg_w04_5m
 +|-
 +| MG || W(ohngebiet) || 5 || - || 5 || style="background:green" | In DB w_05_6_m
 +|-
 +| MG || W(ohngebiet) || 6 || - || 5 || style="background:green" | In DB w_05_6_m
 +|-
 +| 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 || siehe Checkliste mg_g014m
 +|-
 +| MG || G(ewerbegebiet) || 1 || A(bend) || 4 || siehe Checkliste mg_g014a
 +|-
 +| MG || G(ewerbegebiet) || 1 || W(ochenende) || 4 || siehe Checkliste mg_g014w
 +|-
 +| MG || G(ewerbegebiet) || 2 || M(ittag) || 4 || style="background:green" | In DB mg_g024m
 +|-
 +| MG || G(ewerbegebiet) || 2 || A(bend) || 4 || style="background:green" | In DB mg_g024a
 +|-
 +| MG || G(ewerbegebiet) || 2 || W(ochenende) || 4 || style="background:green" | In DB mg_g024w
 +|-
 +| MG || G(ewerbegebiet) || 3 || M(ittag) || 1 || style="background:green" | In DB mg_g031m
 +|-
 +| MG || G(ewerbegebiet) || 3 || A(bend) || 1 || siehe Checkliste mg_g031a
 +|-
 +| MG || G(ewerbegebiet) || 3 || W(ochenende) || 1 || siehe Checkliste mg_g031w
 +|-
 +| MG || G(ewerbegebiet) || 4 || M(ittag) || 1 || siehe Checkliste mg_g041m
 +|-
 +| MG || G(ewerbegebiet) || 4 || A(bend) || 1 || siehe Checkliste mg_g041a
 +|-
 +| MG || G(ewerbegebiet) || 4 || W(ochenende) || 1 || siehe Checkliste mg_g041w
 +|-
 +| MG || G(ewerbegebiet) || 5 || M(ittag) || 1 || siehe Checkliste mg_g051m
 +|-
 +| MG || G(ewerbegebiet) || 5 || A(bend) || 1 || style="background:green" | In DB mg_g051a
 +|-
 +| MG || G(ewerbegebiet) || 5 || W(ochenende) || 1 || style="background:green" | In DB mg_g051w
 +|-
 +| MG || G(ewerbegebiet) || 6 || M(ittag) || 1 || siehe Checkliste mg_g061m
 +|-
 +| MG || G(ewerbegebiet) || 6 || A(bend) || 1 || siehe Checkliste mg_g061a
 +|-
 +| MG || G(ewerbegebiet) || 6 || W(ochenende) || 1 || siehe Checkliste mg_g061w
 +|-
 +| 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 || style="background:green" | In DB kr_i02m
 +|-
 +| 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 || Manipuliert - siehe Checkliste kr_w012m
 +|-
 +| KR || W(ohngebiet) || 2 || - || 2 || style="background:green" | In DB kr_w022m
 +|-
 +| KR || W(ohngebiet) || 3 || - || 2 || siehe Checkliste kr_w032m
 +|-
 +| KR || W(ohngebiet) || 4 || - || 2 || style="background:green" | In DB kr_w042m
 +|-
 +| KR || W(ohngebiet) || 5 || - || 2 || style="background:green" | In DB kr_w052m
 +|-
 +| KR || W(ohngebiet) || 6 || - || 2 || siehe Checkliste kr_w062m
 +|-
 +| KR || W(ohngebiet) || 7 || - || 2 || style="background:green" | In DB kr_w072m
 +|-
 +| KR || W(ohngebiet) || 8 || - || 2 || style="background:green" | In DB kr_w082w
 +|-
 +| KR || W(ohngebiet) || 9 || - || 2 || siehe Checkliste kr_w092w
 +|-
 +| KR || W(ohngebiet) || 10 || - || 2 || siehe Checkliste kr_w10w
 +|-
 +| KR || G(ewerbegebiet) || 1 || M(ittag) || 3 || style="background:green" | In DB kr_g013m
 +|-
 +| KR || G(ewerbegebiet) || 1 || A(bend) || 3 || style="background:green" | In DB kr_g013a
 +|-
 +| KR || G(ewerbegebiet) || 1 || W(ochenende) || 3 || style="background:green" | In DB kr_g013w
 +|-
 +| KR || G(ewerbegebiet) || 2 || M(ittag) || 3 || style="background:green" | In DB kr_g023m
 +|-
 +| KR || G(ewerbegebiet) || 2 || A(bend) || 3 || style="background:green" | In DB kr_g023a
 +|-
 +| KR || G(ewerbegebiet) || 2 || W(ochenende) || 3 || style="background:green" | In DB kr_g023w
 +|-
 +| KR || G(ewerbegebiet) || 3 || M(ittag) || 3 || style="background:green" | In DB kr_g033m
 +|-
 +| KR || G(ewerbegebiet) || 3 || A(bend) || 3 || style="background:green" | In DB kr_g033a
 +|-
 +| KR || G(ewerbegebiet) || 3 || W(ochenende) || 3 || style="background:green" | In DB kr_g033w
 +|-
 +| 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 || style="background:green" | In DB kr_g56m
 +|-
 +| KR || G(ewerbegebiet) || 5 || A(bend) || 6 || style="background:green" | In DB kr_g56a
 +|-
 +| KR || G(ewerbegebiet) || 5 || W(ochenende) || 6 || style="background:green" | In DB kr_g56w
 +|-
 +| KR || G(ewerbegebiet) || 6 || M(ittag) || 6 || style="background:green" | In DB kr_g66m
 +|-
 +| KR || G(ewerbegebiet) || 6 || A(bend) || 6 || style="background:green" | In DB kr_g66a
 +|-
 +| KR || G(ewerbegebiet) || 6 || W(ochenende) || 6 || nicht in Checkliste kr_g66w
 +|-
 +| KR || G(ewerbegebiet) || 7 || M(ittag) || 4 || nicht in Checkliste kr_g74m
 +|-
 +| KR || G(ewerbegebiet) || 7 || A(bend) || 4 || nicht in Checkliste kr_g74a
 +|-
 +| KR || G(ewerbegebiet) || 7 || W(ochenende) || 4 || nicht in Checkliste kr_g74w
 +|-
 +| KR || G(ewerbegebiet) || 8 || M(ittag) || 5 || nicht in Checkliste kr_g85m
 +|-
 +| KR || G(ewerbegebiet) || 8 || A(bend) || 5 || nicht in Checkliste kr_g85a
 +|-
 +| KR || G(ewerbegebiet) || 8 || W(ochenende) || 5 || nicht in Checkliste kr_g85w
 +|-
 +|}
-=== Namenskonvention für Netdetectlogfiles ===+===Checkliste:===
-<kr/mg>_<Straßenname ohne Sonderzeichen>_<messungsnr> +{| border=1
-Gruppe (SSH User) -> 1 User pro Netbook mit Netbookname als loginname+|-
 +! Datei !! Zwei mal !! ca Minuten !! Status
 +|-
 +| kr_g013a || Erkennbar || 24 || In DB
 +|-
 +| kr_g013m || Erkennbar || 40 || In DB
 +|-
 +| kr_g013w || Erkennbar || 25 || In DB
 +|-
 +| kr_g023a || Erkennbar || 60 || In DB
 +|-
 +| kr_g023m || Erkennbar || 50 || In DB
 +|-
 +| kr_g023w || Erkennbar || 45 || In DB
 +|-
 +| kr_g033a || Erkennbar || 25 || In DB
 +|-
 +| kr_g033m || Erkennbar || 40 || In DB
 +|-
 +| kr_g033w || Erkennbar || 25 || In DB
 +|-
 +| kr_g056m || Erkennbar || 55 || In DB
 +|-
 +| kr_g056w || Erkennbar || 50 || In DB
 +|-
 +| kr_g066m || Erkennbar || 60 || In DB
 +|-
 +| kr_g066w || Erkennbar || 60 || In DB
 +|-
 +| kr_g082a || NEIN || 30 || gibt es nicht !
 +|-
 +| kr_g082m || NEIN || 30 || gibt es nicht !
 +|-
 +| kr_i012m || Erkennbar || 65 || In DB
 +|-
 +| kr_i032m || Erkennbar || 55 || gibt es nicht !
 +|-
 +| kr_i033w || Erkennbar || 55 || gibt es nicht !
 +|-
 +| kr_w012m || Manipuliert - Keine Punkte auf dem Rückweg nur Startpunkt kommt 2mal vor || 35 || nicht in DB
 +|-
 +| kr_w022m || Erkennbar || 50 || In DB
 +|-
 +| kr_w032m || Test? || 1 || Nicht in DB
 +|-
 +| kr_w042m || Erkennbar || 60 || In DB
 +|-
 +| kr_w052m || Erkennbar || 70 || In DB
 +|-
 +| kr_w062m || Erkennbar 72 Netze bei Start || 35 || Nicht in DB
 +|-
 +| kr_w072m || Erkennbar || 23 || In DB
 +|-
 +| kr_w082w || Erkennbar || 105 || In DB
 +|-
 +| kr_w092w || Verdacht - Unterschiedliche Tage || 20 || nicht in DB
 +|-
 +| kr_w102w || Verdacht - Unterschiedliche Tage || 10 || nicht in DB
 +|-
 +| KRG05W6 || Zwei Runden || 50 || In DB
 +|-
 +| KRG06W6 || Erkennbar || 60 || In DB
 +|-
 +| mg_g014a || Nicht eindeutig || 50 || nicht in DB
 +|-
 +| mg_g014m || Nicht eindeutig || 50 || nicht in DB
 +|-
 +| mg_g014w || Nicht eindeutig || 50 || nicht in DB
 +|-
 +| mg_g024a || Erkennbar || 80 || In DB
 +|-
 +| mg_g024m || Erkennbar || 90 || In DB
 +|-
 +| mg_g024w || Erkennbar || 80 || In DB
 +|-
 +| mg_g031a || Erkennabr || 60 || In DB
 +|-
 +| mg_g031m || NEIN || 15 || nicht in DB
 +|-
 +| mg_g031w || NEIN || 25 || nicht in DB
 +|-
 +| mg_g041a || NEIN || 20 || nicht in DB
 +|-
 +| mg_g041m || NEIN || 20 || nicht in DB
 +|-
 +| mg_g041w || NEIN || 30 || nicht in DB
 +|-
 +| mg_g051a || Erkennbar || 40 || In DB
 +|-
 +| mg_g051m || NEIN || 20 || nicht in DB
 +|-
 +| mg_g051w || Erkennbar || 33 || In DB
 +|-
 +| mg_g061a || Leichte Zweifel || 45 || nicht in DB
 +|-
 +| mg_g061m || NEIN || 35 || nicht in DB
 +|-
 +| mg_g061w || NEIN || 40 || nicht in DB
 +|-
 +| mg_i016m || Nur halb || 50 || nicht in DB
 +|-
 +| mg_i026m || NEIN || 60 || nicht in DB
 +|-
 +| mg_i034m || NEIN || 23 || nicht in DB
 +|-
 +| mg_i046m || Nur halb || 35 || nicht in DB
 +|-
 +| mg_i056m || NEIN || 30 || nicht in DB
 +|-
 +| mg_i064m || NEIN || 35 || nicht in DB
 +|-
 +| mg_w01_5m || Erkennbar || 60 || In DB
 +|-
 +| mg_w02_5m || Nur halb || 40 || Nicht in DB
 +|-
 +| mg_w03_5m || Erkennbar || 55 || In DB
 +|-
 +| mg_w04_5m || NICHT VERWERTBAR || 5 || Nicht in DB
 +|-
 +| w_05_6_m || Erkennbar || 50 || In DB
 +|-
 +| w_06_6_m || Erkennbar || 55 || In DB
 +|-
 +|}
-===Kür :===+==Merkzettel==
-*mac <-> vendor zuordnung: http://standards.ieee.org/regauth/oui/oui.txt http://standards.ieee.org/regauth/oui/+um eine Sequence zurueck zu setzen:
-*fertiges Script zum anlegen und fuellen der Tabelle: [[Bild:Oui.sql.gz]]+ ALTER SEQUENCE xdrive_t_id_seq RESTART WITH 1;
- +==19.11.2009==
-====selbst erstellen:====+*Usermanagment notes:
- #in bash: cd /tmp+ \du :liste der rollen
- #downloaden+ http://www.postgresql.org/docs/8.4/interactive/sql-grant.html
- wget http://standards.ieee.org/regauth/oui/oui.txt+ 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
- #Eintraege filtern 
- cat oui.txt | grep 'base 16' > tmp.txt 
- #insert erstellen ! falsch weil wiki irgendwas ersetzt :/+ //Idee: alle Rechte nehmen nur das erlauben was noetig ist.
- 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:+ //public alle rechte nehmen:
- #Tabelle erstellen+ REVOKE all ON koordinaten_t FROM PUBLIC;
- CREATE TABLE oui ( mac varchar(6) primary key, name varchar(255));+ 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;
- #encoding setzen+ //...und fuer db:
- SET client_encoding to 'latin1';+ Revoke all on database xdrive_tmp from public;
- #inserten...+ //show all roles:
- \i insert.sql+ select * from pg_roles;
- #encoding zurueck setzen+ //create role connect only "Gruppe" erstellen
- SET client_encoding to 'UTF8';+ 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 -> [http://www.knaupes.net/linux-cronjobs-anlegen-mit-crontab/ 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 -> [http://qbesmine.de/stuff/putty_kurzanleitung.pdf 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. -> [http://qbesmine.de/stuff/winscp_kurzanleitung.pdf 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 -> [http://qbesmine.de/stuff/winscp_kurzanleitung.pdf 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== ==29.10.2009==
Zeile 84: Zeile 439:
typ_id int, typ_id int,
first_seen int, first_seen int,
- last_seen int,+ last_seen int
- pc_id int+
); );
Zeile 91: Zeile 445:
CREATE TABLE messung_t( CREATE TABLE messung_t(
id SERIAL Primary Key, id SERIAL Primary Key,
- datum date,+ filename varchar (255)
- uhrzeit time,+
- ort varchar(255)+
); );
Zeile 126: Zeile 478:
====constraints==== ====constraints====
- ALTER TABLE xdrive_t ADD CONSTRAINT messung_c FOREIGN KEY(messung_id) REFERENCES messung_t(id);+ ALTER TABLE xdrive_t ADD CONSTRAINT messung_c FOREIGN KEY(messung_id) REFERENCES messung_t(id) ON DELETE cascade;
 + ALTER TABLE koordinaten_t ADD CONSTRAINT xdriveid_c FOREIGN KEY (xdrive_id) REFERENCES xdrive_t(id) ON DELETE CASCADE;
 + 
ALTER TABLE xdrive_t ADD CONSTRAINT typ_c FOREIGN KEY (typ_id) REFERENCES typ_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); ALTER TABLE xdrive_t ADD CONSTRAINT versch_c FOREIGN KEY (verschluesselung_id) REFERENCES verschluesselung_t(id);
Zeile 142: Zeile 496:
==Skript zum Einpflegen von Daten== ==Skript zum Einpflegen von Daten==
*TODO *TODO
 +
 +===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';

Aktuelle Version

Inhaltsverzeichnis

[bearbeiten] Team log

[bearbeiten] TODO

[bearbeiten] Status:

Ort Gebiet Nr. Messung MIS(Gruppe) Status
MG I(nnenstadt) 1 - 6 siehe Checkliste mg_i016m
MG I(nnenstadt) 2 - 6 siehe Checkliste mg_i026m
MG I(nnenstadt) 3 - 4 siehe Checkliste mg_i036m
MG I(nnenstadt) 4 - 6 siehe Checkliste mg_i046m
MG I(nnenstadt) 5 - 6 siehe Checkliste mg_i056m
MG I(nnenstadt) 6 - 4 siehe Checkliste mg_i066m
MG W(ohngebiet) 1 - 5 In DB mg_w01_5m
MG W(ohngebiet) 2 - 5 nicht in DB mg_w02_5m
MG W(ohngebiet) 3 - 5 In DB mg_w03_5m
MG W(ohngebiet) 4 - 5 siehe Checkliste mg_w04_5m
MG W(ohngebiet) 5 - 5 In DB w_05_6_m
MG W(ohngebiet) 6 - 5 In DB w_05_6_m
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 siehe Checkliste mg_g014m
MG G(ewerbegebiet) 1 A(bend) 4 siehe Checkliste mg_g014a
MG G(ewerbegebiet) 1 W(ochenende) 4 siehe Checkliste mg_g014w
MG G(ewerbegebiet) 2 M(ittag) 4 In DB mg_g024m
MG G(ewerbegebiet) 2 A(bend) 4 In DB mg_g024a
MG G(ewerbegebiet) 2 W(ochenende) 4 In DB mg_g024w
MG G(ewerbegebiet) 3 M(ittag) 1 In DB mg_g031m
MG G(ewerbegebiet) 3 A(bend) 1 siehe Checkliste mg_g031a
MG G(ewerbegebiet) 3 W(ochenende) 1 siehe Checkliste mg_g031w
MG G(ewerbegebiet) 4 M(ittag) 1 siehe Checkliste mg_g041m
MG G(ewerbegebiet) 4 A(bend) 1 siehe Checkliste mg_g041a
MG G(ewerbegebiet) 4 W(ochenende) 1 siehe Checkliste mg_g041w
MG G(ewerbegebiet) 5 M(ittag) 1 siehe Checkliste mg_g051m
MG G(ewerbegebiet) 5 A(bend) 1 In DB mg_g051a
MG G(ewerbegebiet) 5 W(ochenende) 1 In DB mg_g051w
MG G(ewerbegebiet) 6 M(ittag) 1 siehe Checkliste mg_g061m
MG G(ewerbegebiet) 6 A(bend) 1 siehe Checkliste mg_g061a
MG G(ewerbegebiet) 6 W(ochenende) 1 siehe Checkliste mg_g061w
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 In DB kr_i02m
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 Manipuliert - siehe Checkliste kr_w012m
KR W(ohngebiet) 2 - 2 In DB kr_w022m
KR W(ohngebiet) 3 - 2 siehe Checkliste kr_w032m
KR W(ohngebiet) 4 - 2 In DB kr_w042m
KR W(ohngebiet) 5 - 2 In DB kr_w052m
KR W(ohngebiet) 6 - 2 siehe Checkliste kr_w062m
KR W(ohngebiet) 7 - 2 In DB kr_w072m
KR W(ohngebiet) 8 - 2 In DB kr_w082w
KR W(ohngebiet) 9 - 2 siehe Checkliste kr_w092w
KR W(ohngebiet) 10 - 2 siehe Checkliste kr_w10w
KR G(ewerbegebiet) 1 M(ittag) 3 In DB kr_g013m
KR G(ewerbegebiet) 1 A(bend) 3 In DB kr_g013a
KR G(ewerbegebiet) 1 W(ochenende) 3 In DB kr_g013w
KR G(ewerbegebiet) 2 M(ittag) 3 In DB kr_g023m
KR G(ewerbegebiet) 2 A(bend) 3 In DB kr_g023a
KR G(ewerbegebiet) 2 W(ochenende) 3 In DB kr_g023w
KR G(ewerbegebiet) 3 M(ittag) 3 In DB kr_g033m
KR G(ewerbegebiet) 3 A(bend) 3 In DB kr_g033a
KR G(ewerbegebiet) 3 W(ochenende) 3 In DB kr_g033w
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 In DB kr_g56m
KR G(ewerbegebiet) 5 A(bend) 6 In DB kr_g56a
KR G(ewerbegebiet) 5 W(ochenende) 6 In DB kr_g56w
KR G(ewerbegebiet) 6 M(ittag) 6 In DB kr_g66m
KR G(ewerbegebiet) 6 A(bend) 6 In DB kr_g66a
KR G(ewerbegebiet) 6 W(ochenende) 6 nicht in Checkliste kr_g66w
KR G(ewerbegebiet) 7 M(ittag) 4 nicht in Checkliste kr_g74m
KR G(ewerbegebiet) 7 A(bend) 4 nicht in Checkliste kr_g74a
KR G(ewerbegebiet) 7 W(ochenende) 4 nicht in Checkliste kr_g74w
KR G(ewerbegebiet) 8 M(ittag) 5 nicht in Checkliste kr_g85m
KR G(ewerbegebiet) 8 A(bend) 5 nicht in Checkliste kr_g85a
KR G(ewerbegebiet) 8 W(ochenende) 5 nicht in Checkliste kr_g85w

[bearbeiten] Checkliste:

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

[bearbeiten] Merkzettel

um eine Sequence zurueck zu setzen:

ALTER SEQUENCE xdrive_t_id_seq RESTART WITH 1;

[bearbeiten] 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';

[bearbeiten] 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.

[bearbeiten] Kurzanleitung zu PuTTY

Hier eine Kurzanleitung zu Putty -> PuTTY_Kurzanleitung

[bearbeiten] 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

[bearbeiten] Offene Fragen an die Gladbacher Gruppe

  • Wird ein Messplan mit Messungsnummern erstellt?

[bearbeiten] 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

[bearbeiten] WinSCP Kurzanleitung

Hier eine Kurzanleitung zu WinSCP -> WinSCP_Kurzanleitung

[bearbeiten] 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;

[bearbeiten] Namenskonvention für Netdetectlogfiles

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

[bearbeiten] 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.

[bearbeiten] 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

[bearbeiten] 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.

[bearbeiten] 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?)

[bearbeiten] Design der Datenbank

[bearbeiten] Tabellen:

[bearbeiten] 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
);

[bearbeiten] messung_t

CREATE TABLE messung_t(
    id SERIAL Primary Key,
    filename varchar (255)
    );

[bearbeiten] koordinaten_t

CREATE TABLE koordinaten_t (
    id SERIAL Primary Key,
    xdrive_id int,
    latitude varchar(255),
    longitude varchar(255),
    signal_quality int
);

[bearbeiten] 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');

[bearbeiten] 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');

[bearbeiten] constraints

ALTER TABLE xdrive_t ADD CONSTRAINT messung_c FOREIGN KEY(messung_id) REFERENCES messung_t(id) ON DELETE cascade;
ALTER TABLE koordinaten_t ADD CONSTRAINT xdriveid_c FOREIGN KEY (xdrive_id) REFERENCES xdrive_t(id) ON DELETE CASCADE;
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);

[bearbeiten] Aufsetzen der Datenbank

[bearbeiten] SQL Server: PostgreSQL

  • sudo apt-get install postgresql
  • sudo -u postgres createuser --superuser $USER
  • createdb
  • psql

[bearbeiten] PyGreSQL

[bearbeiten] Skript zum Einpflegen von Daten

  • TODO

[bearbeiten] Kür :

[bearbeiten] 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