Ws2009ba-i-5.datenbank
Aus Labor für Echtzeitsysteme
(Unterschied zwischen Versionen)
Version vom 19:38, 3. Nov. 2009 (bearbeiten) David (Diskussion | Beiträge) (→TODO) ← Zum vorherigen Versionsunterschied |
Version vom 15:04, 4. Nov. 2009 (bearbeiten) (rückgängig) Stephan S. (Diskussion | Beiträge) Zum nächsten Versionsunterschied → |
||
Zeile 19: | Zeile 19: | ||
**phppgadmin: | **phppgadmin: | ||
*testuser erstellen und ssh_chroot david | *testuser erstellen und ssh_chroot david | ||
+ | |||
+ | === Präsentation der Datenbank=== | ||
+ | *Datenbankserver | ||
+ | **Ubuntu Linux | ||
+ | **Postgresql | ||
+ | **Script zum Parsen der Ndetectlogfiles | ||
+ | *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]] | ||
=== ERD === | === ERD === |
Version vom 15:04, 4. 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 -> messungs_id, ssh_login, timestamp
Server AccountsForeignkey Constraint für Koordinaten xdrive_idDB HostenAnleitung zum Connecten!? StephanERDStraßennamen einpflegen- Präsipunkte
- Idee: Pro Netbook ein Useraccount auf dem Server (Netbookname) -> ein Useraccount in der Datenbank
- Tabellen Inhalt Beispiele.
- ERD
- Winscp
- parsen von Netdetectlogfile in die Datenbank
- phppgadmin:
- testuser erstellen und ssh_chroot david
Präsentation der Datenbank
- Datenbankserver
- Ubuntu Linux
- Postgresql
- Script zum Parsen der Ndetectlogfiles
- User Accounts
- Pro Netbook ein Useraccount auf dem Server (Netbookname)
- Ein Useraccount in der Datenbank
- ERD
- phppgadmin
- Serverzugang über WinSCP
ERD
phppgadmin
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
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), 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
- 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