Hallo zusammen,
ich bin noch sehr neu in der Programmierung von einem Raspberry und Linux. Momentan versuche ich, ein Projekt zu realisieren, bei welchem ich SMS über "smstools" empfange. Für eine Weiterverarbeitung muss ich die emfangenen Daten in eine SQL-Datenbank schreiben. Diese Datenbank liegt jedoch nicht auf dem Raspberry, sondern auf einem Server im lokalen Netzwerk.
Das smstool hat einen Trigger, welcher bei einem Empfang einer SMS ein individuelles Script ausführt. Meines Erachtens liegt das Problem an dem von mir geschriebenem Script, da auch ein manelles ausführen mit von mir vorgegebenen Variablen keinen Erfolg bringt.
Vielleicht könnt ihr mir hier weiterhelfen.
Webseite von "smstool": http://smstools3.kekekasvi.com/
Name meiner Datei: "sms_in_db"
Code:
#!/bin/bash
# This is an example script that logs all events into an SQL database
SQL_HOST=192.168.178.27
SQL_USER=user
SQL_PASSWORD=passwort
SQL_DATABASE=sms
SQL_TABLE=sms_tool
DATE=`date +%s`
#Extract data from the SMS file
FROM=`formail -zx From: < $2 | sed 's/"//g'`
TO=`formail -zx To: < $2`
#Remove plus sign, spaces, minus and short number prefix
TO=`echo "$TO" | sed 's/ //g' | sed 's/+//g' | sed 's/s//g' | sed 's/-//g'`
SUBJECT=`formail -zx Subject: < $2`
SENT=`formail -zx Sent: < $2`
TEXT=`sed -e '1,/^$/ d' < $2`
TEXTSQL=$(echo "$TEXT" | sed 's/\\/\\\\/g' | sed 's/\"/\\\"/g')
#Set some SQL parameters
if [ "$SQL_PASSWORD" != "" ]; then
SQL_ARGS="-p$SQL_PASSWORD";
else
SQL_ARGS="";
fi
SQL_ARGS="-h $SQL_HOST -u $SQL_USER $SQL_ARGS -D $SQL_DATABASE -s -e"
#Insert a new entry into the SQL table
if [ "$1" = "FAILED" ] || [ "$1" = "SENT" ]; then
mysql $SQL_ARGS "insert into $SQL_TABLE (status,time,nummer,text) values (\"$1\",\"$DATE\",\"$TO\",\"$TEXTSQL\");";
elif [ "$1" = "RECEIVED" ]; then
mysql $SQL_ARGS "insert into $SQL_TABLE (status,time,nummer,text) values (\"RECEIVED\",\"$DATE\",\"$FROM\",\"$TEXTSQL\");";
elif [ "$1" = "REPORT" ]; then
mysql $SQL_ARGS "insert into $SQL_TABLE (status,time,nummer,text) values (\"ERROR\",\"$DATE\",\"$FROM\",\"$TEXTSQL\");";
fi
Display More
Meine Datenbank ist wie folgt aufgebaut:
[font="sans-serif"]id - bigint(20) - AUTO_INCREMENT[/font]
[font="sans-serif"][font="sans-serif"]status - varchar(20)[/font][/font]
[font="sans-serif"][font="sans-serif"][font="sans-serif"]time - int(11)[/font][/font][/font]
[font="sans-serif"][font="sans-serif"][font="sans-serif"][font="sans-serif"]nummer - varchar(20)[/font][/font][/font][/font]
[font="sans-serif"][font="sans-serif"][font="sans-serif"][font="sans-serif"][font="sans-serif"]text - varchar(260)[/font][/font][/font][/font][/font]
[font="sans-serif"][font="sans-serif"][font="sans-serif"][font="sans-serif"][font="sans-serif"]Die Datei ist auch ausführbar. Wenn man einen Doppelklick darauf macht, wird man gefragt, ob man sie ausführen oder öffnen will.[/font][/font][/font][/font][/font]
[font="sans-serif"][font="sans-serif"][font="sans-serif"][font="sans-serif"][font="sans-serif"]Ich tippe darauf, dass es entweder ein Problem mit dem Verbinden zur Datenbank oder mit dem Schreiben in die Datenbank gibt.[/font][/font][/font][/font][/font]
[font="sans-serif"][font="sans-serif"][font="sans-serif"][font="sans-serif"][font="sans-serif"]Auf eine Dateiendung kann ich bei dem Script ja verzichten, da ich den Typ in der ersten Zeile meines Scripts definiert habe oder?[/font][/font][/font][/font][/font]
[font="sans-serif"][font="sans-serif"][font="sans-serif"][font="sans-serif"][font="sans-serif"]Eine eigene Datenbank/Datenbanksystem habe ich nicht installiert. In dem Glauben, dass dies nicht benötigt wird, wenn ich auf eine externe Datenbank zugreife.[/font][/font][/font][/font][/font]
[font="sans-serif"][font="sans-serif"][font="sans-serif"][font="sans-serif"][font="sans-serif"]Sollte das soweit funktionieren, wäre ich noch über eine Erweiterung froh. Nach Eintrag in die Datenbank müsste die Datei, in welcher die Daten der SMS stehen, gelöscht werden um nicht zu viel Datenmüll zu generieren.[/font][/font][/font][/font][/font]
[font="sans-serif"][font="sans-serif"][font="sans-serif"][font="sans-serif"][font="sans-serif"]Einen schönen Abend :)[/font][/font][/font][/font][/font]