Mechouate / Hospitracking

0 stars 0 forks source link

Code version : scan1 , scan2 , server & Pi Vorbereitung #76

Open Mechouate opened 5 years ago

Mechouate commented 5 years ago

scan1 version 03.12.2018

!/bin/bash -x

scan vorbereiten hcitool und hcidump Bibliothek

sudo hciconfig hci0 down sudo hciconfig hci0 up

sudo timeout 1s hcitool lescan;

sudo timeout 0.2s hcitool lescan --duplicates

scan die Beacons die in der nähe sind

sudo timeout 2s hcidump | egrep 'bdaddr' > a.csv awk '{print $2}' a.csv > b.csv rm a.csv sudo sort b.csv| uniq | egrep 'AC:23:3F:24' > c.csv rm b.csv n=$(wc -l c.csv) d=$(echo $n | cut -d" " -f1) echo "$n" cat c.csv names='' for ((i=1; i<=d; i++)); do names="$(sed -n ${i}p c.csv) $names" ; done for name in $names; do sh scan2.sh 10s $name & done; wait rm c.csv

Daten Bank zeigen

sudo mysql --user=root --password=naima raum -e"select * from objekt_information;"

Mechouate commented 5 years ago

scan2 version 03.12.2018

!/bin/bash -x

scan für 30 Sekunden nach die Mac Adresse 'XY'

time=$1 mac=$2 host=$(hostname) hosti=$(hostname -I|awk '{print $1}') sudo timeout $time hcidump | egrep 'RSSI|'$mac'' > $mac-1.csv;

RSSI Filter 1 f1==>f2

awk '$0~/'$mac'/ {getline ;print $0}' $mac-1.csv > $mac-2.csv

remove f1

rm $mac-1.csv

RSSI Filter 2 f2==>f3

awk '{print $2}' $mac-2.csv > $mac-3.csv

remove f2

rm $mac-2.csv

le nombre de Signale scanner

wc -l $mac-3.csv

erst sortieren |dann| wie Häufig ist jeden Wert |dann| die Häufigste Wert steht Oben 1.Max , 2.Max ... f3==>f4

sudo sort $mac-3.csv| uniq -c | sort -rn > $mac.4.csv

remove f3

rm $mac-3.csv

Print Result ==>f4

cat $mac-4.csv

echo "Welcome $host $hosti"

echo "Der 1. Maximun"

v1=$(sed -n 1p $mac.4.csv) v11=$(sed -n 1p $mac.4.csv|awk '{print $1}') v12=$(sed -n 1p $mac.4.csv|awk '{print $2}')

echo "$v1"

echo "Der 2. Maximun"

v2=$(sed -n 2p $mac.4.csv) v21=$(sed -n 2p $mac.4.csv|awk '{print $1}') v22=$(sed -n 2p $mac.4.csv|awk '{print $2}')

echo "$v2"

echo "Der 3. Maximun"

v3=$(sed -n 3p $mac.4.csv) v31=$(sed -n 3p $mac.4.csv|awk '{print $1}') v32=$(sed -n 3p $mac.4.csv|awk '{print $2}')

echo "$v3"

remove f4

sort -k2 -n $mac.4.csv > $mac.5.csv rm $mac.4.csv

Mittelwert berechnen

m1=$(($v11 * $v12))

echo $m1

m2=$(($v21 * $v22))

echo $m2

m3=$(($v31 * $v32))

echo $m3

m4=$(($v11 + $v21 + $v31))

echo $m4

m=$(($m1 + $m2 + $m3))

echo $m

mw=$(echo "scale=2; $m / $m4;" | bc)

echo $mw

Maximum der scan raus finden

s=$(wc -l $mac.5.csv|awk '{print $1}') max1=$(sed -n ${s}p $mac.5.csv|awk '{print $2}') max2=$(sudo mysql --user=root --password=naima raum -e"select Maximum,Max_date from objekt_information where Maximum=(select min(Maximum) from objekt_information where objekt_mac_adr='${mac}');"|sed -n 2p|awk '{print $1}')

max_d=$(date '+%Y-%m-%d %H:%M:%S')

md=$(sudo mysql --user=root --password=naima raum -e"select Maximum,Max_date from objekt_information where Maximum=(select min(Maximum) from objekt_information where objekt_mac_adr='${mac}');"|sed -n 2p|awk '{print $2 " " $3}') rm $mac.5.csv

DB_USER='root'; DB_PASSWD='naima'; DB_NAME='raum'; TABLE='objekt_information';

if [ -z "${md}" ];then

Ergebniße im Daten Bank speichern

sudo mysql --user=$DB_USER --password=$DB_PASSWD $DB_NAME << EOF INSERT INTO $TABLE (objekt_mac_adr, create_date, RSSI_Max1, RSSI_Max2, RSSI_Max3, Mittelwert, Maximum, Max_date, objekt_ort ) VALUES ("$mac",NOW(),"$v1", "$v2","$v3","$mw" ,"$max1" ,NOW() , "$host $hosti"); EOF

elif [ "$max1" -lt "$max2" ] then

Ergebniße im Daten Bank speichern

sudo mysql --user=$DB_USER --password=$DB_PASSWD $DB_NAME << EOF INSERT INTO $TABLE (objekt_mac_adr, create_date, RSSI_Max1, RSSI_Max2, RSSI_Max3, Mittelwert, Maximum, Max_date, objekt_ort ) VALUES ("$mac",NOW(),"$v1", "$v2","$v3","$mw" ,"$max2" ,"$md" , "$host $hosti"); EOF

else

Ergebniße im Daten Bank speichern

sudo mysql --user=$DB_USER --password=$DB_PASSWD $DB_NAME << EOF INSERT INTO $TABLE (objekt_mac_adr, create_date, RSSI_Max1, RSSI_Max2, RSSI_Max3, Mittelwert, Maximum, Max_date, objekt_ort ) VALUES ("$mac",NOW(),"$v1", "$v2","$v3","$mw" ,"$max1" ,NOW() , "$host $hosti"); EOF

fi

Mechouate commented 5 years ago

scan1 version 03.12.2018

scan1.sh.zip

Mechouate commented 5 years ago

scan2 version 03.12.2018

scan2.sh.zip

Mechouate commented 5 years ago

Pi vorbereitung version 02.12.2018

Pi vorbereitung

sudo apt-get update sudo apt-get upgrade sudo apt-get install netatalk sudo update-rc.d avahi-daemon defaults sudo nano /etc/avahi/services/afpd.service

        <?xml version=”1.0″ standalone=’no’?><!–*-nxml-*–>
        <!DOCTYPE service-group SYSTEM “avahi-service.dtd”>
        <service-group>
        <name replace-wildcards=”yes”>%h</name>
        <service>
        <type>_afpovertcp._tcp</type>
        <port>548</port>
        </service>
        </service-group>

sudo /etc/init.d/avahi-daemon restart sudo apt-get install bluez bluez-hcidump sudo apt-get install mysql-server --fix-missing sudo apt-get install mysql-client

sudo mysql --user=root --password=naima

CREATE DATABASE raum;

use raum;

        DROP TABLE IF EXISTS `objekt_information`;
        CREATE TABLE `objekt_information` (
          `objekt_id` int(225) NOT NULL AUTO_INCREMENT,
          `objekt_mac_adr` varchar(225) DEFAULT NULL,
          `create_date` timestamp,
          `RSSI_Max1` varchar(40) DEFAULT NULL,
          `RSSI_Max2` varchar(40) DEFAULT NULL,
          `RSSI_Max3` varchar(40) DEFAULT NULL,
          `Mittelwert` varchar(40) DEFAULT NULL,
          `objekt_ort` varchar(40) DEFAULT NULL,
          PRIMARY KEY (`objekt_id`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

        DROP TABLE IF EXISTS `objekt_max`;
        CREATE TABLE `objekt_max` (
          `objekt_id` int(225) NOT NULL AUTO_INCREMENT,
          `objekt_mac_adr` varchar(225) DEFAULT NULL,
          `Maximum` varchar(40) DEFAULT NULL,
          `Max_date` timestamp,
          `objekt_ort` varchar(40) DEFAULT NULL,
          PRIMARY KEY (`objekt_id`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

sudo apt install bc sudo nano /etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="FritzBoxHC1" psk="1234567890A" key_mgmt=WPA-PSK id_str="work"} network={ ssid="VIRUS 1" psk="11naima33" key_mgmt=WPA-PSK id_str="Home"} network={ ssid="iPhone von Adam" psk="11naima33" key_mgmt=WPA-PSK id_str="Handy"} scan1.sh & scan2.sh reinkopieren dann scan1.sh laufen lassen sudo bash scan1.sh sudo shutdown now

Mechouate commented 5 years ago

Pi Vorbereitung version 03.12.2018

test.sh.zip

Mechouate commented 5 years ago

server version 03.12.2018

!/bin/bash -x

n=$(wc -l mac.csv) d=$(echo $n | cut -d" " -f1) echo "$n" cat mac.csv names='' for ((i=1; i<=d; i++)); do names="$(sed -n ${i}p mac.csv) $names" ; done for name in $names; do ssh pi@${name} 'bash scan1.sh' & done; wait for name in $names; do ssh pi@${name} 'sudo mysql --user=root --password=naima raum -e"select * from objekt_information;"' > $name.csv & done; wait

for name in $names; do cat $name.csv ; done

for name in $names; do ssh pi@${name} 'sudo mysql --user=root --password=naima raum -e"delete from objekt_information;"'& done; wait

for name in $names; do ssh pi@${name} 'sudo mysql --user=root --password=naima raum -e"TRUNCATE TABLE objekt_information;"'& done; wait adr=$(sed -n 1p mac.csv) sed -n 1p $adr.csv > 192.0.csv for name in $names; do sed '1d' $name.csv > $name.1.csv ; done for name in $names; do rm $name.csv ; done cat 192*.csv >concat.csv cut -f1 --complement concat.csv > con.csv rm concat.csv sudo sort -rn con.csv > co.csv rm con.csv cat co.csv

Mechouate commented 5 years ago

server version 03.12.2018

server.sh.zip