Ws2009ba-i-5.datenbank

Aus Labor für Echtzeitsysteme

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

← Zum vorherigen Versionsunterschied
Version vom 20:02, 27. Okt. 2009 (bearbeiten) (rückgängig)
Stephan S. (Diskussion | Beiträge)
(27.10.2009)
Zum nächsten Versionsunterschied →
Zeile 40: Zeile 40:
Wird gestartet mit: Wird gestartet mit:
python filter.py <logfile>.ndd 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== ==26.10.2009==

Version vom 20:02, 27. Okt. 2009

Inhaltsverzeichnis

Team log

TODO

  • inportprog schreiben
  • inport von daten besser beschreiben?


Kür :

#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';

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 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:

[ID* SERIAL, BSSID varchar(12), ESSID(32), VERSCHLUESSELUNG_ID int, KANAL int, GESCHWINDIGKEIT int, TYP_ID, FIRST_SEEN int, LAST_SEEN int, GRUPPEID]

CREATE TABLE xdrive_t (id SERIAL Primary Key, bssid varchar(12), essid varchar(32), verschluesselung_id int, kanal int, speed int, typ_id int, first_seen int, last_seen int, gruppen_id int);

koordinaten_t

[ID int Primary Key, XDRIVE_ID int, LATITUDE varchar(255)?, LONGITUDE varchar(255)?, SIGNAL_QUALITY int]

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

verschluesselung_t

[ID*, NAME varchar(255)]

 CREATE TABLE verschluesselung_t (id SERIAL Primary Key, name varchar(10));

typ_t

[ID*, NAME varchar(255)]

CREATE TABLE typ_t (id SERIAL Primary Key, name varchar(10) );

constraints

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

Skript zum Einpflegen von Daten

  • TODO
Persönliche Werkzeuge