Home

Kostenloses Buch "SMS Anwendungen"

image

Contents

1. 3 rows in set 0 00 sec Sie haben nun zwei Spalten hinzugef gt die nat rlich noch leer sind Angenommen sie stellen fest dass manche Strassennamen l nger als 30 Zeichen sind dann m ssen Sie die Spalte f r die Strassennamen entsprechend verbreitern Das tolle an MySQL ist dass Ihnen die vorhandenen Strassennamen bei dieser nderung nicht verloren gehen alter table anschriften modify strasse char 50 Sie k nnen jetzt l ngere Strassennamen eingeben als bisher m glich Was jetzt noch fehlt ist der Befehl mit dem Sie ganze Spalten l schen mysql gt alter table anschriften drop geschlecht Query OK 3 rows affected 0 00 sec Records 3 Duplicates 0 Warnings 0 mysql gt select from anschriften id name vorname strasse plz ort geburtsdatum 1 Mustermann Markus Bachstrasse 13 11111 Irgendwo NULL 2 Musterfrau Michaela NULL 22222 Wasserdorf NULL 3 Mustermann Sohnemann Bachstrasse 13 NULL Irgendwo NULL 3 rows in set 0 00 sec Seite 98 SMS Anwendungen A 7 11 Daten L schen Wie Sie einzelne Sp
2. Die erste Reihe sagt Ihnen dass Sie mit dem Modem MODEM1 eine SM um 22 26 Uhr empfangen haben Sie wurde um 12 16 vom Absender 01721234567 abgeschickt Die zweite Reihe sagt Ihnen dass Sie um 12 16 eine SM an 01721234567 gesendet haben und dass diese um 12 16 erfolgreich ausgeliefert wurde status 0 Der Absendername somebody kommt von der From Zeile in der SMS Datei Die dritte Reihe sagt Ihnen dass Sie um 12 16 eine SM nach 01721234567 senden wollten aber das Senden war erfolglos Nun zeige ich Ihnen beispielhaft einige SQL Befehle mit denen Sie die Datenbank abfragen k nnen Um die gesamte Tabelle abzrufen geben Sie im mysql Client select from sms_log ein Um alle Nachrichten an eine bestimmte Zielrufnummer zu z hlen geben Sie ein select count from sms_log where type SENT AND receiver 491722056395 Der Befehl select from sms_log where type SENT AND receiver 491721234567 Zeigt diese dann an anstatt sie zu z hlen Der n chste Befehl listet alle empfangenen Nachrichten auf select from sms_log where type RECEIVED Seite 195 SMS Anwendungen 5 14 Mysmsd erkl rt In diesem Kapitel erkl re ich Ihnen wie das mysmsd Script funktioniert smsd startet das Script mysmsd jedesmal nachdem eine SM gesendet oder empfangen wurde Der Befehl dazu lautet lusr local bin mysmsd SENT Dateiname ID Nummer lusr local bin mysmsd
3. id name vorname strasse plz ort 3 Mustermann Sohnemann Bachstrasse 13 NULL Irgendwo 1 row in set 0 00 sec Durch das Schl sselwort limit bestimmen Sie wieviele Reihen Sie maximal sehen wollen Im obigen Beispiel begrenzen Sie die Ausgabe auf eine einzige Reihe lich Seite 97 SMS Anwendungen 4 7 10 Spalten ndern Die Struktur einer SQL Tabelle ist ver nderbar Sie k nnen Spalten hinzuf gen l schen und ver ndern Wir wollen nun zwei Spalten hinzuf gen f r Geschlecht und Gebutsdatum mysql gt alter table anschriften gt add geschlecht CHAR 1 gt add geburtsdatum DATE Query OK 3 rows affected 0 00 sec Records 3 Duplicates 0 Warnings 0 mysql gt select from anschriften id name vorname strasse plz ort geschlecht geburtsdatum 1 Mustermann Markus Bachstrasse 13 11111 Irgendwo NULL NULL 2 Musterfrau Michaela NULL 22222 Wasserdorf NULL NULL 3 Mustermann Sohnemann Bachstrasse 13 NULL Irgendwo NULL NULL
4. egrep Brtumm test txt zeigt aber nur die Zeile mit Brrrrumm an denn wegen dem Zeichen wird nun mindestens ein r verlangt egrep Dr test txt findet Dr und Dr Dr Dieses Beispiel demonstriert den Nutzen von Klammern Da bezieht sich jetzt n mlich nicht nur auf einen einzigen Buchstaben sondern auf alles was innerhalb der Klammern steht egrep Meier Liebig test txt sucht nach dem Namen Meier oder Liebig grep TF or test txt zeigt alle Zeilen an in denen ein gro es T oder ein gro es F gefolgt von einem kleinen o oder r vorkommt 4 9 15 6 Leerzeichen wegschneiden Manchmal haben Sie in einer Variablen einen Text stehen der mit unerw nschten Leerzeichen beginnt oder endet Wie bekommen Sie diese weg Ganz einfach so a Hallo echo a b echo a echo b Diese Befehle erzeugen die Ausgabe Hallo Hallo Der erste echo Befehl demonstriert dass in der Variable a der Text mitsamt den ungewollten Leerzeichen steht Danach zweckentfremden wir den echo Befehl mit einer Ausgabeumleitung in die Variable b um die Leerzeichen wegzubekommen Der dritte echo Befehl beweist den Erfolg dieser Aktion Warum funktioniert das so Zur Erkl rung zerlegen wir zuerst mal die dritte Befehlszeile in b und echo a Interessant ist dabei echo a Hier habe ich ganz bewusst keine Anf hrungsstriche um die Variable a geschrieben wie man es normalerweise immer tun sollte Dadurch bewirkt man dass
5. Seite 108 SMS Anwendungen 4 8 5 Operatoren Operatoren benutzen Sie zum Rechnen oder zum Vergleichen Wenn Sie Operanden mit einem Operator verbinden entsteht ein Ausdruck Jeder Ausdruck liefert eine Zahl eine Zeichenkette oder einen Boolean Wert als Ergebnis Arithmetische Operatoren Bit Operatoren 8 lt lt gt gt Vergleichsoperatoren lt gt Logische Operatoren and 88 Addition 1 2 ergibt 3 Subtraktion 5 2 ergibt 3 Multiplikation 2 3 ergibt 6 Division 36 3 ergibt 12 Ist der Modulus Operator mit anderen Worten der Rest einer Division 12 5 ergibt 2 Und Nur die Bits die in beiden Operanden gesetzt sind sind im Ergebnis gesetzt 11 amp 7 ergibt 6 Oder Im Ergebnis sind alle Bits gesetzt die in einem oder beiden Operanden gesetzt sind 4 2 ergibt 6 Exklusiv Oder Im Ergebnis sind alle Bits gesetzt die in nur einem der Operanden gesetzt sind 6 4 ergibt 2 Nach links schieben Im Ergebnis sind alle Bits um n Positionen nach links verschoben 4 lt lt 1 ergibt 8 Nach rechts schieben Im Ergebnis sind alle Bits um n Positionen nach rechts verschoben 4 gt gt 1 ergibt 2 Gleich 3 3 ergibt TRUE Ungleich 3 4 ergibt TRUE Ungleich wie 3 4 ergibt TRUE Kleiner als 3 lt 4 ergibt TRUE Gr sser als 4 gt 3 ergibt TRUE Kleiner oder gleich 3 lt 3 ergibt TRUE Gr sser oder gleich 4 gt 4 ergibt TRUE Und TRUE and TRUE
6. Sie haben eine andere Zahl eingegen Sie k nnten dieses Script auch mit der case esac Anweisung schreiben Oft sieht das bersichtlicher aus test19 sh bin sh echo Geben Sie eine Zahl ein read Zahl case Zahl in 1 echo Sie haben eine Eins eingegeben 2 echo Sie haben eine Zwei eingegeben 3 echo Sie haben eine Drei eingegeben 4 echo Sie haben eine Vier eingegeben echo Sie haben etwas anderes eingegeben esac Vergessen sie die doppelten Semikolons nicht Wenn Sie mehrere Befehle pro passende Bedingung ausf hren wollen k nnen Sie dies so schreiben test20 sh bin sh echo Geben Sie eine Zahl ein read Zahl case Zahl in 1 echo Sie haben eine Eins eingegeben echo Eins gefaellt mir 2 echo Sie haben eine Zwei eingegeben echo Zwei ist auch ganz nett esac Dieses Beispiel demonstriert dass die doppelten Semikolons auch in einer eigenen Zeile stehen d rfen und dass Sie den Abschnitt weglassen d rfen Sie k nnen auch mehrere Vergleichswerte als ODER Funktion verkn pfen test21 sh rr bin sh echo Geben Sie eine Zahl ein read Zahl case Zahl in 1 12 echo Sie haben eine Eins oder Zwei eingegeben 3 4 9 echo Sie haben eine Drei oder Vier oder Neun eingegeben esac Die case esac Anweisung funktioniert auch mit Texten Schreiben Sie diese wie gehabt immer in Anf hrungsstriche um Probleme mit Leerzeichen zu vermeiden test22 sh rr bin
7. Anzahl der Zeichen bei 7 Bit oder Anzahl der Bytes bei 8 Bit Text oder Daten In diesem Fall hellohello Telefonnummern werden mit F aufgef llt wenn die Anzahl der Ziffern ungerade ist Die Ziffern der Telefonnummern werden vertauscht dargestellt wie man am obigen Beispiel gut sehen kann Texte bestehen aus Zeichen mit 7 Bit L nge Diese Bits werden aneinander gereiht und dann wieder zerlegt aber in Bytes mit jeweils 8 Bit Und zwar so oooro l oroo Hoor o slootn onst tr onslooonon ltonoon l oooro n loroo tool o oot on t nslor ooonol 010mm ppoo rio rifoor1oriafi11o110o a f e f a Ich habe die Bin rzahlen absichtlich falsch herum dargestellt weil man das Codierungsschema so besser verstehen kann Links ist immer das Bit O und rechts das Bit 6 bzw 7 Wenn am Ende nicht gen gend Bits brig sind um ein Byte voll zu bekommen wird einfach mit 0 Bits aufgef llt Wenn Sie sich dieses Codierschema genau ansehen werden Sie schnell verstehen warum 8 Bit Kurzmitteilungen nur 140 Bytes lang sein d rfen aber Textmitteilungen 7 Bit 160 Zeichen F r die G ltigkeitsdauer der Nachricht gibt es vier Formate ohne Zeitangabe der Defaultwert des SMSC gilt Erweitertes Format siehe ETSI TS 100 900 Spezifikation Absolutes Format Wie das Datum Zeit Feld im Status Report oder in empfangenen SMS 7 Bytes lang Relatives Format 1 Byte Bei
8. Ebenfalls recht einfach ist es die Anzahl der Reihen zu z hlen und zwar mit select count from anschriften Das where Schl sselwort haben Sie im letzten Kapitel bereits einmal benutzt um beim update Befehl die gew nschte Tabellenreihe zu bezeichnen Dies k nnen Sie auch beim select Befehl tun select from anschriften where id 2 So lassen Sie sich nur die Reihe 2 anzeigen Sie k nnen auch alle Reihen anzeigen in denen andere Bedingungen zutreffen z B so select from anschriften where plz 11111 select from anschriften where name Mustermann select from anschriften where name Mustermann and vorname lt gt Markus Der dritte Befehl zeigt alle Anschriften von Familie Mustermann an aber nicht den Markus in unserem Fall ist das nur der Sohnemann Mit and und or k nnen Sie mehrere Ausdr cke verkn pfen Sie k nnen auch nach halben Zeichenketten suchen und zwar so select from anschriften where name like Muster Sie bekommen so alle Anschriften angezeigt deren Name mit Muster beginnt Das geht auch anders herum select from anschriften where name like mann Das Prozent Zeichen ist ein Joker f r mehrere Buchstaben w hrend der Unterstrich _ ein Jokerzeichen f r genau ein einziges Zeichen ist So wie sie beim select befehl mit where angeben welche Zeilen Sie sehen wollen bestimmen Sie auch beim update Befehl welche Zeilen sie ver ndern wollen Wenn Sie das where Schl sselwort einfach weglass
9. SY Sm Sd H M S Der Date Befehl zeigt das aktuelle Datum im angegebenen Format an Durch Ausgabeumleitung wird das Datum in die Variable DATE geschrieben FROM formail zx From lt 2 sed s g 2 ist der Name der SMS Datei Formail holt aus dieser Datei den Absendernamen oder die Absendernummer heraus Dazu wird die Eingabe von Formail durch den Pfeil lt in die Datei 2 umgeleitet denn Formail kann nur von dem Eingabekanal lesen Der Absendername befindet sich im Vorspann hinter dem Schl sselwort From Mit sed werden unerw nschte Anf hrungsstriche entfernt falls vorhanden Das Ergebnis wird mittels Ausgabeumleitung in die Variable FROM geschrieben TO formail zx To lt 2 Mit der gleichen Methode wird die Telefonnummer des Empf ngers aus der SMS Datei extrahiert SUBJECT formail zx Subject lt 2 Auch die Betrifft Zeile wird mit der selben Methode entnommen Bei empfangenen SM enth lt sie den Namen des Modems dass die SM empfangen hat SENT formail zx Sent lt 2 Und wieder wird nach bekannter Methode ein Feld aus der SMS Datei extrahiert n mlich der Zeitstempel wann die SM gesendet wurde Seite 196 SMS Anwendungen Wir haben nun die folgenden Informationen Aktuelles Datum mit Uhrzeit Absender Empf nger Name des Modems Datum und Uhrzeit wann die SM gesendet wurde if SSQL PAssWORD then SQL ARGS p SQL PASSWORD else SQL
10. Sie k nnen die originalen SMS Server Tools kostenlos von meiner Homepage http www meinemullemaus de downloaden auf die sich dieses Buch bezieht Unter http smstools3 kekekasvi com finden Sie neueste Version der SMS Server Tools 2 6 9 EditPad Lite EditPad Lite ist ein Texteditor f r Windows Im Vergleich zu Notepad hat er folgende Zusatzfunktionen e _ ffnen von mehr als einer Datei gleichzeitig e Leistungsstarke Suchen Ersetzen Funktion e ffnet auch Dateien von Unix und Macintosh keine Probleme mit Zeilenumbr chen Unbegrenzte Dateigr sse Unbegrenzte R ckg ngig Funktion Markieren von rechteckigen Bl cken mit Alt Taste e Bessere Druckfunktion e Umwandlung von OEM Dos Zeichensatz in Ansi Windows Zeichensatz und umgekehrt Anzeige der Zeilen und Spaltennummer des Cursors Wenn Ihnen EditPad Lite gef llt dann m chten Sie sich vielleicht auch EditPad Pro ansehen Diese gr ssere Version hat unter anderem folgende Zusatzmerkmale bunte Syntax Hervorhebung f r alle g ngigen Programmiersprachen und HTML e Hex Editor e Dateivergleich e Zusammenfassung mehrerer Dateien in eine Projekt e Lesezeichen Sonderzeichen Tabelle e Rechtschreibkontrolle e Sortieren Regul re Ausdr cke Sechs Zwischenablagen Sie erhalten Editpad auf der Webseite http www editpadlite com editpadlite html Bei nicht kommerzieller Anwendung ist das Programm kostenlos Seite 26 SMS Anwendungen 2 6
11. From 491721234567 To 491727654321 Outgoing Queue gt gt gt exciting vn ui we meet agair h h Modem2 DN Failed Folder Modem3 MM pci 444444 Modem4 DN ID ID 44444 I l l l Modem Statistics Logfile Eventhandler Status Monitor Sent SMS to include lt stdio jeoeive int mainfint arg ER Be ent if stromp ar printfc SME Das Bild zeigt wie die SMS Server Tools SM senden In diesem Fall werden f nf britische Telefon Netzbetreiber unterst tzt und es werden vier GSM Modems zum Versand und Empfang benutzt Eine Erkl rung folgt ab der n chsten Seite Seite 162 SMS Anwendungen Das Senden von SMS beginnt indem man ein SMS File anlegt SMS File Outgoing Queue From 491721234567 To 491727654321 un DA SS exciting When will we meet again In dieser Textdatei steht wenigstens die Telefonnummer des Empf ngers und der Nachrichtentext Sie k nnen auch den Namen oder die Telefonnummer des Absenders in die Datei schreiben Diese tauchen dann sp ter in Protokolldateien Logfiles wieder au
12. OK at cmgr 1 CMGR 0 28 0791947122720000040C919471123254F60000301061024051800AE8329BFD4697D9EC37 OK at cmgd 1 OK Der erste Befehl war wieder nicht n tig Ich habe damit gepr ft wieviele SMS im Handy gespeichert sind Die erste Angabe SM 1 10 bedeutet dass auf der SIM Karte eine Nachricht gespeichert ist und maximal 10 Nachrichten darauf passen Der zweite Befehl liest die Nachricht aus Speicherplatz 1 aus Sie h tte auch in einem anderen Speicherplatz liegen k nnen aber das Handy hat mich ja zuvor dar ber informiert wo die gerade empfangene Nachricht zu finden ist H tte ich das nicht gewusst dann h tte ich alle 10 Speicherpl te durchprobieren m ssen oder den Befehl at cmgl benutzen m ssen Nachdem ich die Nachricht gelesen habe l schte ich sie mit dem letzten Befehl Seite 48 SMS Anwendungen Sicher ist Ihnen nicht entgangen dass der Nachrichtentext hellohello ist wie ich Ihnen in den vorherigen Kapiteln als Beispiel gezeigt habe Tip Geben Sie die PDU Daten in das Programm PDU Spy ein und sehen Sie sich an wie das Programm die Daten entschl sselt Vergleichen Sie die Ausgabe von PDU Spy mit den vorherigen Kapiteln Seite 49 SMS Anwendungen 4 2 Software Installation Sie wissen nun was Sie alles f r Ihre SMS Anwendung ben tigen Auch haben Sie bereits Ihre erste Kurzmitteilung gesendet und empfangen allerdings manuell Es ist also nun der Zeitpunkt gekommen wo Sie die ganze
13. b lt br gt 2 gt lt body gt lt html gt Dieses Programm erzeugt die Ausgabe Die globalen Werte sind Eins und Zwei Die Werte in test sind Eins und Zwei Die globalen Werte sind jetzt Drei und Zwei Durch den Befehl global machen Sie der Funktion die angegeben Variablen bekannt Sie sind nun also sowohl global als auch lokal verwendbar Das beweist die zweite Zeile der Bildschirmausgabe Die dritte Zeile beweist dass jetzt auch nderungen innerhalb der Funktion im Hauptprogramm sichtbar sind Seite 121 SMS Anwendungen 4 8 12 Variable Variablen Der Titel dieses Kapitel h rt sich wie ein Witz an aber das ist nicht der Fall Variable Variablen werden selten genutzt Doch ab und zu kann man ein Programm durch Ihre Benutzung erheblich vereinfachen Ein Beispiel test12 php lt html gt lt body gt lt php SJanuar kalt SJuli warm print Im Januar ist es Januar lt br gt print Im Juli ist es Juli lt br gt SMonat Juli print Im Monat Monat ist es Monat lt br gt 2 gt lt body gt lt html gt Das Programm erzeugt die Bildschirmausgabe Im Januar ist es kalt Im Juli ist es warm Im Monat Juli ist es warm Der dritte print Befehl und die entsprechend dritte Ausgabezeile ist hier besonders interessant Monat ist eine variable Variable Sie bedeutet soviel wie Zeige mir den Inhalt der Variable deren Name in Monat steht Da Monat den Wert Juli hat entspricht Mo
14. berschrift der Tabelle aus gefolgt von einem Zeilenumbruch lt php So wird der Beginn des PHP Programmcodes gekennzeichnet Seite 118 SMS Anwendungen mysql connect localhost root mein passwort Wir verbinden uns mit dem SQL Server auf dem eigenen Rechner localhost und melden uns mit dem Usernamen root und dem Passwort mein_passwort an ndern Sie den Servernamen und das Passwort ggf entsprechend Ihrer Einstellung Sresult mysql_db query datenbank select from tabelle Mit mysql_db_query schicken wir einen SQL befehl zum SQL Server und fragen ab ob die Abfrage erfolgreich war Die Variable result erh lt bei Erfolg eine Kennzahl die man sp ter braucht um das Ergebnis auszulesen Wenn der Befehl fehlerhaft war ist die Variable NULL if result else printf Es ist ein Fehler aufgetreten lt br gt s mysql_error Mit der if Kontrollstrukut wird gepr ft ob result einen Wert enth lt Wenn result NULL ist wird der else Abschnitt ausgef hrt der eine Fehlermeldung anzeigt Beachten Sie hier die Verwendung der Funktion mysql_error Sie liefert den Fehlertext zum gerade fehlgeschlagenen SQL Befehl Anstelle von if result k nnte man auch if result 0 schreiben Beide Versionen erf llen den gleichen Zweck Der Programmabschnitt hinter if wird nur dann ausgef hrt wenn der Ausdruck TRUE oder nicht NULL ist Auch die schlichte Angabe eines Variablennamens ist bereits
15. chlich gesendet wurde Der n chste Schritt ist das SMS File auf G ltigkeit zu berpr fen Diese Aufgabe nimmt Ihnen das Hauptprogramm ab Provider Queue Vodafone rEE EEEEE Outgoing Folder 5 5 Failed Folder mem ee Blacklist Es liest alle Dateien in der ausgehenden Warteschlange Outgoing Queue ein und vergleicht die Empf ngernummern mit der schwarzen Liste Blacklist Das ist eine Textdatei in der alle Telefonnummern eingetragen werden die keine SM bekommen d rfen Die Blackliste kann auch Vorwahlen enthalten um ganze Nummernbereiche zu sperren Seite 163 SMS Anwendungen Alternativ gibt es auch eine weisse Liste Whitelist Hier tragen Sie alle Zielrufnummern ein die SM bekommen d rfen Wenn keine weisse Liste existiert darf jeder eine SM bekommen ausser diejenigen die in der schwarzen Liste stehen Wenn es sowohl eine weisse als auch eine schwarze Liste gibt erhalten nur diejenigen Kurzmitteilungen die in der weissen Liste stehen und nicht in der schwarzen Die schwarze Liste hat Vorrang Wenn in dem SMS File ein Netzanbieter Provider Name angegeben ist wird die Datei nun in die Warteschlange dieses Netzanbieters Provider Queue verschoben Wenn der Netzanbieter jedoch unbekannt ist vergleicht sms die Telefonnummer des Empf ngers mit einer Liste in der Konfigurationsdatei sms conf und ordnet die Kurzmitteilung anhand der Vorwahl dem richtigen Netzanbieter zu Anm
16. die Modembefehle Smsd kann auf den Bildschirm protokollieren Standard Ausgabe in eine Datei schreiben oder den Syslog D mon von Unix zum Aufzeichenn von Protokollen benutzen Sie k nnen dies frei konfigurieren Ereignis Programme Eventhandler k nnen beim Auftreten bestimmter Ereignisse gestartet werden z B wenn eine Kurzmitteilung gesendet oder empfangen wurde Die Eventhandler erm glichen Ihnen das Andocken anderer Programme womit Sie die Funktionen von sms ohne gro en Aufwand erheblich erweitern k nnen Ein typisches Anwendungsbeispiel ist z B eine Geb hrenabrechnung mittels SQL Datenbank Seit Version 1 10 kann sms sogar die G ltigkeit von SMS Files in der ausgehenden Warteschlange Outgoing Queue von externen Programme pr fen lassen bevor sie gesendet werden Wie Sie im Laufe dieses Buches feststellen werden liegt in den Ereignis Programmes ein elementarer Vorteil von den SMS Server Tools im Vergleich zu anderen hnlichen Programmen Alarmhandler sind eigentlich auch Ereignis Programme Sie werden aufgerufen wenn Fehler aufgetreten sind Alarm Handler k nnen Beispielsweise benutzt werden um eine St rmeldung per eMail zu versenden oder eine Signalleuchte einzuschalten Seite 166 SMS Anwendungen 5 2 Installation und Konfiguration Wie man die SMS Server Tools unter unterschiedlichen Betriebssystemen installiert habe ich im Kapitel 4 2 erkl rt Zur Erinnerung wiederhole ich hier nochmal die wesentlichen Be
17. m ssen Sie zus tzlich die Tabelle nennen aus der Sie die id Spalte sehen wollen In diesem Fall ist das also die Spalte anschriften id Hinter dem Schl sselwort where m ssen Sie die beiden Spalten benennen durch die Ihre Tabellen verkn pft sind In diesem Fall sind es die beiden Id Spalten also anschriften id kontostand id Seite 95 SMS Anwendungen Wenn Sie nicht alle Kontost nde sehen wollen sondern nur die von Familie Mustermann tun Sie das so select anschriften id name vorname betrag from anschriften kontostand where anschriften id kontostand id and name Mustermann 4 7 8 NULL Werte Bitte geben Sie zur Vorbereitung diesen Befehl im SQL Client ein update anschriften set plz where id 3 Ihre Anschriften Tabelle sieht jetzt so aus mysql gt select from anschriften id name vorname strasse plz loft 1 Mustermann Markus Bachstrasse 13 11111 Irgendwo 2 Musterfrau Michaela NULL 22222 Wasserdorf 3 Mustermann Sohnemann Bachstrasse 13 Irgendwo 3 rows in set 0 00 sec Beachten Sie bitte dass Michael Musterfrau keine Strasse hat und Sohnemann Mustermann keine Postleitzahl Merkw rdig erscheint hier dass bei Michaela NULL steht w hren
18. ngenangabe mit und manche z hlen es nicht mit Die Ziffern der Telefonnummern werden vertauscht dargestellt wie man am obigen Beispiel gut sehen kann Alphanumerische Absendernamen werden wie 7 Bit Text codiert Die L ngenangabe davor gibt an wie viele Hex Ziffern der Absendername lang ist also im Grunde genommen wie bei numerischen Absendern Als Status gibt es folgende Werte dezimal Ok Nachricht wurde ausgeliefert Ok das Endger t konnte den Empfang der Nachricht nicht best tigen Ok Die Nachricht wurde vom SMSC ersetzt Versuche weiter das Netz ist nicht bereit Versuche weiter das Endger t nicht bereit Versuche weiter keine Antwort vom Endger t Versuche weiter Dienst abgelehnt Versuche weiter Qualit t des Dienstes nicht verf gbar Versuche weiter Fehler im Endger t Fehler Prozedurfehler beim Empf nger Fehler Ziel nicht kompatibel Fehler Nachricht vom Endger t verweigert Fehler nicht ermittelbar Fehler Qualit t des Dienstes nicht verf gbar Fehler keine Zusammenarbeit m glich Fehler G ltigkeit der Nachricht abgelaufen Fehler Nachricht wurde vom Absender gel scht das geht nur bei Direktverbindung zur SMSC Fehler Nachricht wurde vom SMSC Administrator gel scht Fehler Nachricht existiert nicht Fehler Netz nicht bereit Fehler Endger t nicht bereit Seite 41 SMS Anwendungen Fehler
19. nnen Sie f r jedes einzelne Modem vornehmen Modemname Jeder Abschnitt mit Modemeinstellungen wird durch den Modemnamen eingeleitet Dahinter folgen zusammenh ngend alle Einstellungen f r das genannte Modem init Zeichenfolge Hier k nnen Sie einen zus tzlichen Modembefehl eingeben der vor dem Senden oder Empfangen vom Modem ausgef hrt wird Im einfachsten Fall brauchen Sie diese Einstellung nicht Wenn Sie hier ATEO hinschreiben unterdr cken Sie das echo aller Modembefehle dass vom Modem erzeugt wird Das Programm l uft dann minimal schneller und die Protokolldatei mit Loglevel 7 sieht bersichtlicher aus weil dort nicht jeder Modembefehl doppelt erscheint Manche GSM Modems insbesondere Handies speichern empfangene Kurzmitteilungen vorzugsweise im Internen Speicher RAM anstatt auf der SIM Karte versuchen aber lediglich von der SIM Karte zu lesen Das ist nicht so gut denn so k nnen Sie nat rlich die empfangenen SM nicht mit dem Computer auslesen Wenn Sie dieses Problem bemerken initialisieren Sie Ihr Modem mit init ATEO CPMS SM oder init ATEO CPMS ME So befehlen Sie dem Modem dass es alle empfangenen Kurzmitteilungen auf der SIM Karte SM oder im internen Speicher ME speichern UND lesen soll Je nach Ger t f hrt nur eine der beiden Varianten oder beide zum Erfolg Um mit Siemens Modems Status Reports empfangen zu k nnen m ssen Sie diese mit AT CNMI 2 0 0 2 1 initialisieren device Sc
20. rzere Zeichenketten speichern aber es wird immer der festgelegte Speicherplatz belegt Vorteil Der Zugriff auf CHAR ist sehr schnell Nachteil Es wird Speicherplatz verschwendet wenn der reservierte Speicherplatz nicht voll genutzt wird Zeichenketten vom Typ TEXT LONGTEXT BLOB und LONGBLOB belegen genau soviel Speicher wie notwendig Daf r ist aber der Zugriff darauf langsamer Wenn Sie Zeichenketten vergleichen oder suchen sind TEXT und LONGTEXT von der gro Kleinschreibung unabh ngig w hrend bei BLOB und LONGBLOB die gro Kleinschreibung beachtet wird Wenn Sie Zeichenketten speichern werden bersch ssige Leerzeichen auf der rechten Seite abgeschnitten Leerzeichen auf der linken Seite bleiben jedoch erhalten Seite 90 SMS Anwendungen 4 7 3 Optionen zu Datentypen Bei INTEGER und BIGINT k nnen Sie die anzuzeigende L nge in Klammern angeben INTEGER n BIGINT n Beim Auslesen werden die Zahlen dann rechtsb ndig in der entsprechenden Spaltenbreite dargestellt Sie k nnen dennoch auch gr ssere Zahlen speichern In Kombination mit der Option ZEROFILL werden Integer Zahlen mit Nullen anstatt Leerzeichen aufgef llt INTEGER n ZEROFILL BIGINT n ZEROFILL Wenn in einer Spalte nichts gespeichert wird zeigt MySQL dies durch das Schl sselwort NULL an Durch die Option NOT NULL erzwingen Sie dass die Spalte ausgef llt werden muss z B INTEGER NOT NULL Durch die Option DEFAULT legen Sie einen Standardw
21. table gt lt body gt lt html gt gt gt var log smsd status html done Wenn Sie dieses Script benutzen um den Statusmonitor zu verbessern erhalten Sie eine bunte HTML Tabelle mit jeweils einem K stchen pro Modem Die Webseite aktualisisert sich alle 3 Sekunden selbst F r andere Aktualisiserungszeiten ndern Sie die 3000 entsprechend ab 5000 bedeutet 5 Sekunden Wie gehabt m ssen Sie die Datei etc init d smsd entsprechend ndern usr local bin smsd s usr local bin statusmonitor2 sh amp Seite 209 SMS Anwendungen 6 2 2 Alarme als bunte Webseite Sie k nnen jetzt den aktuellen Status aller Modems bequem im Webbrowser beobachten N tzlich w re es jetzt wenn Sie zus tzlich die letzten Alarme sehen k nnten Legen Sie sich dazu einen Alarmhandler an der alle Alarme in eine Alarm Protokolldatei im HTML Format schreibt alarmhandler sh bin sh file var log smsd alarm html touch file mv file file old echo lt html gt lt body bgcolor lightgray onLoad window setTimeout location reload 60000 1 gt gt file case 4 in 1 2 echo lt font color red gt 2 3 5 S6 lt font gt lt br gt 3 echo lt font color orange gt 2 3 5 6 lt font gt lt br gt 4 echo lt font color yellow gt 2 3 5 6 lt font gt lt br gt echo lt font color black gt 2 3 5 6 lt font gt lt br gt esac gt gt file sed e 2 100p silent file old gt gt file Da
22. 0x20 32 SPACE 32 Seite 45 SMS Anwendungen 0x21 33 EXCLAMATION MARK 33 0x22 34 QUOTATION MARK il 34 0x23 35 NUMBER SIGN 35 0x24 36 CURRENCY SIGN a 164 0x25 37 PERCENT SIGN 37 0x26 38 AMPERSAND 8 38 0x27 39 APOSTROPHE i 39 0x28 40 LEFT PARENTHESIS 40 0x29 41 RIGHT PARENTHESIS 41 0x2A 42 ASTERISK E 42 0x2B 43 PLUS SIGN 43 0x2C 44 COMMA 5 44 0x2D 45 HYPHEN MINUS 45 0x2E 46 FULL STOP y 46 0x2F 47 SOLIDUS SLASH 47 0x30 48 DIGIT ZERO 0 48 0x31 49 DIGIT ONE 1 49 0x32 50 DIGIT TWO 2 50 0x33 51 DIGIT THREE 3 51 0x34 52 DIGIT FOUR 4 52 0x35 53 DIGIT FIVE 5 53 0x36 54 DIGIT SIX 6 54 0x37 55 DIGIT SEVEN 7 55 0x38 56 DIGIT EIGHT 8 56 0x39 57 DIGIT NINE 9 57 0x3A 58 COLON 58 0x3B 59 SEMICOLON 59 0x3C 60 LEss THAN SIGN lt 60 0x3D 61 EQUALS SIGN 61 Ox3E 62 GREATER THAN SIGN gt 62 Ox3F 63 QUESTION MARK 63 0x40 64 INVERTED EXCLAMATION MARK i 161 0x41 65 LATIN CAPITAL LETTER A A 65 0x42 66 LATIN CAPITAL LETTER B B 66 0x43 67 LATIN CAPITAL LETTER C C 67 0x44 68 LATIN CAPITAL LETTER D D 68 0x45 69 LATIN CAPITAL LETTER E E 69 0x46 70 LATIN CAPITAL LETTER F F 70 0x47 71 LATIN CAPITAL LETTER G G 71 0x48 72 LATIN CAPITAL LETTER H H 72 0x49 73 LATIN CAPITAL LETTER I l 73 0x4A 74 LATIN CAPITAL LETTER J J 74 0x4B 75 LATIN CAPITAL LETTER K K 75 0x4C 76 LATIN CAPITAL LETT
23. 5 13 Protokollierunig in SQL Datenbank 2u ue een ae En A RE Leer 194 9 14 2Mysmsd erkl rt 22 2 5 2 en einsehen 196 Seite 6 SMS Anwendungen 6 Sinnvolle Erweitern ge iii dE ada el idas 200 6 1 Wartungsfretor Dauerbetrie iii 242282 Era Ra 200 6 1 1 Protokolld teien PEJE xiii AA A A A AA AA 201 6 1 2 Alte SMS DatelentlOschenN iaa contes se blo eaten nennen nen e Eaa ae nature hehe reihen et aA ae EAE as sense 204 RN CA A NAT 204 6 1 4 Selbst TES Ai A de dt ash Te 205 ZU ON Ie 208 6 2 1 Statusmonitor als WebSelte omic aaa iria iaa 209 6 2 2 Alarmesals B nte Webseilte N enredo td AAA E AD EA A ibid 210 6 3 Mehr als 32 ModemS 2 20a adas 211 6 4 Eine SMS an mehrere Empf ngers aonn e il 212 TaPraktische Anwendungsbelspiele viii a a E a aa AAA Dia E 213 Ll Zontrales Alarmsystemen A ae Aaa aa lee aa AA En Par e ea aK N AAE ao Ea NEE ENATS 213 Tek 1 Send rselte NINOS 213 T1 2 EMpfANJErSE tE iii cid 214 TS eL AA O ON 215 LAS NON 215 122 Emplangerseite unn Mo da rt rl A e A ES AUS HABEN TE 215 tSr eMail Zu SMS Gateway niia A A o 217 7 3 1 eMail zu SMS Gateway mit lokalem Mailserver 2004240444400nnnnnennnnnnnnnnnnnnennnnnnnnnonnnnnnnnnnnnnnnnnnnnnannnnnnnnnnrnnnnnnnn 217 7 3 2 eMail zu SMS Gateway mit entferntem MalilServer ooooconnncccinccccnoccnooaccnonancnnoncnnnnncnnnnnnnnoncnnn nn cone rn nan n cnn nn n narra EEan EE Ennan nennen 218 1 4 Absenderimit S E
24. 8 11 Lokale und globale Variablen Variablen werden nicht nur durch ihren Namen bezeichnet sondern auch durch ihren G ltigkeitsbereich Es gibt zwei G ltigkeitsbereiche e lokale Variablen globale Variablen Alle Variablen die Sie innerhalb einer Funktion benutzen sind lokal Variablen die Sie ausserhalb einer Funktion benutzen sind global Ein Beispiel test8 php lt html gt lt body gt lt php function testl Sa Zwei print Der lokale Wert in testl ist a lt br gt function test2 print Der lokale Wert in test2 ist a lt br gt Sa Eins print Der globale Wert ist a lt br gt testl test2 print Der globale Wert ist immer noch a lt br gt 2 gt lt body gt lt html gt Speichern Sie sich dieses Programm ab und probieren Sie es aus Die Bildschirmausgabe wird so aussehen Der globale Wert ist Eins Der lokale Wert in testl ist Zwei Der lokale Wert in test2 ist Der globale Wert ist immer noch Eins Interessant sind hier besonders die dritte und vierte Ausgabezeile Bei der dritten Ausgabe fehlt der Wert denn innerhalb der Funktion test2 wurde der Variablen kein Wert zugewiesen Es spielt keine Rolle dass es eine gleichnamige Variable bereits global gibt sowie lokal in der anderen Funktion Innerhalb von test2 gibt es a nicht Die vierte Ausgabezeile demonstriert Ihnen dass die globale Variable a immer noch unver ndert ist Die Zuweisung a Zwei in
25. Ansicht Gehe zu Lesezeichen Extras Einstellungen Fenster Hilfe A 2 r 2 N OOOI FOL E AERE Lo E gt Adresse EB ntip Mocalnosttesteisprung htm II Fi Herzlich willkommen beim Eisprung Erinnerungsdienst Wenn Sie sich auf dieser Seite anmelden erhalten Sie ein Jahr lang Kurzmitteilungen auf Ihr Handy die Sie an den Eisprung und an die Blutung erinnern Meine Handynummer lautet 491721234567 Meine Einstellungen sollen mit dem Passwort geheim gesichert werden Die letzte Blutung begann am 23 03 2003 Ein Zyklus dauert bei mir immer 28 Tage bestellen stornieren j Zum Stornieren des Dienstes brauchen Sie nur Ihre Handynummer und das Passwort eingeben Klicken Sie danach auf stornieren Nach einer Bestellung erscheint eine einfache Erfolgsmeldung Dokument Bearbeiten Ansicht Gehe zu Lesezeichen Extras Einstellungen Fenster Hilfe QAZA VO 4 De AAA a E gt Adresse E Httpsnocalhosttesyanmeiden php 1 5 Ihre bestehendes Abbonement wurde gel scht Ihre neue Bestellung wurde angenommen Seite geladen 7 5 2 Das Anmelde Script Wenn die Kundin nach Eingabe ihrer Daten auf bestellen oder stornieren klickt wird das Script anmelden php aufgerufen Seite 221 SMS Anwendungen lt html gt lt body gt lt php function eingabefehler meldung print meldung lt br gt print Bitte korrigieren Sie Ihre Eingabe exit function s
26. Befehl zeigt wie Sie das Ergebnis einfach nur anzeigen anstatt es in eine Variable zu speichern Man sieht sowas nur selten denn meistens will man das Ergebnis in irgend einer Form weiter verarbeiten z B in einer if then fi Kontrollstruktur Seite 140 SMS Anwendungen 4 9 14 Fehlermeldungen Sie haben bereits gelernt wie Sie die Ausgabe von Programmen in Variablen Dateien oder in andere Programme umleiten Diese Umleitungen wirken sich aber nicht auf Fehlermeldungen aus Ein Beispiel rm xxxaaabbbccc gt dev null Der Befehl soll eigentlich die Datei xxxaaabbbccc l schen Da die Datei aber gar nicht existiert erscheint eine Fehlermeldung Nun haben Sie ja die Ausgabe nach dev null umgeleitet aber dennoch erscheint die Fehlermeldung auf dem Bildschirm Das liegt daran dass es in Wirklichkeit zwei unterschiedliche Ausgabekan le gibt Der Kanal 1 ist f r normale Ausgaben gedacht w hrend der Kanal 2 f r Fehlermeldungen genutzt wird Die Ausgabeumleitung im obigen Befehl wirkt sich aber nur auf Kanal 1 aus Falls Sie sich jetzt fragen was denn dev null f r eine Datei sein soll Das ist keine wirkliche Datei sondern ein Ger tetreiber der einfach alles verschluckt und nichts damit anf ngt Sie k nnen dev null sozusagen als M lleimer f r Ausgaben benutzen die Sie nicht sehen haben wollen Wir haben aber immer noch das Problem dass die Fehlermeldung trotz Umleitung erscheint Die L sung geht so rm xxxaaab
27. Befehle die Sie in geschweifte Klammern einschliessen und so als zusammengeh rigen Block kennzeichnen Beispiele dazu finden Sie in den folgenden Unterkapiteln 4 8 6 1 if elseif else Durch if elseif und else f hren Sie einen Programmabschnitt bedingt aus Hinter if m ssen Sie einen Audruck in Klammern schreiben Der Programmabschnitt wird nur ausgef hrt wenn der Ausdruck wahr ist TRUE oder nicht Null if a gt 3 Befehle Befehle Befehle Mit else k nnen Sie einen alternativen Programmabschnitt anh ngen der ausgef hrt wird wenn der Ausdruck FALSE oder 0 ist if a gt 3 Befehle Befehle Befehle else Alternative Befehle Alternative Befehle Alternative Befehle Mit elseif k nnen Sie mehrere alternative Bedingungen verketten if a lt 0 print a ist negativ elseif a gt 0 print a ist positiv else print a ist weder negativ noch positiv also Null Sie m ssen nicht so viele Zeilenumbr che verwenden wie ich das im obigen Beispiel getan habe So ist es auch korrekt if a lt 0 print a ist negativ elseif a gt 0 print a ist positiv y else print a ist weder negativ noch positiv also Null Wenn Sie m chten k nnen Sie alles sogar in eine Zeile schreiben bersichtlich w re das dann aber nicht mehr Seite 111 SMS Anwendungen 4 8 6 2 switch case Wenn Sie in einer if Anweisung viele Al
28. Cron Job so aussehen alles in eine Zeile schreiben 14 0 c cygwin bin bash c usr local bin delete old _sql sh gt dev null 2 gt amp 1 Seite 204 SMS Anwendungen 6 1 4 Selbst Test Um absolut sicherzustellen dass die SMS Server Tools SM richtig versenden und empfangen k nnten Sie ein Script schreiben dass einen Selbsttest durchf hrt Schicken Sie sich selbst eine SM und kontrollieren Sie ob diese ankommt Die folgenden Zeilen gehen davon aus dass Sie drei Modems mit den Namen GSM1 GSM2 und GSM3 haben Sie haben sich bereits eine entsprechende Konfigurationsdatei angelegt Legen Sie sich dazu das Verzeichnis var spool sms self test an Darunter legen Sie sich f r jeden Modem eine hereinkommende und eine herausgehende Warteschlange an var spool sms self test GSM1 in var spool sms self test GSM2 in var spool sms self test GSM3 in var spool sms self test GSM1 out Ivar spool sms self test GSM2 out Ivar spool sms self test GSM3 out Tragen Sie die herausgehenden Warteschlangen in die Konfigurationsdatei etc smsd conf ein Jedes Modem soll diese als letzte Warteschlange bedienen Die neuen Zeilen sind diese var spool sms GSM1 out GSM2 var spool sms GSM2 out GSM3 var spool sms GSM3 out GSM1 queues GSMl GSM2 queues GSM2 GSM3 queues GSM3 Anstelle der P nktchen lassen Sie bitte die regul ren Warteschlangen stehen die das Modem bereits bedient Wichtig i
29. Dokumentation jedoch mit einigen zus tzlichen Details 5 1 berblick Diese Einleitung gibt Ihnen eine bersicht was die SMS Server Tools k nnen und wie sie funktionieren Eine Anmerkung zu Abk rzungen SMS bedeutet Short Message Service und bezeichnet den gesamten Dienst Man kann also keine SMS versenden dennoch wird die Abk rzung von den meisten Handybesitzern falsch verwendet selbst die Werbung gebraucht diese Abk rzung falsch SM bedeutet Short Message Man sendet also keine SMS sondern eine SM Viele Leute vermeiden diese Abk rzung weil SM auch Sado Masochismus bedeutet SMSC bedeutet Short Message Service Center Das ist eine SMS Zentrale die f r die Zwischenspeicherung und Verteilung von SM beim Netzbetreiber zust ndig ist So wie jedes Telefongespr ch durch eine Vermittlungsstelle geht und jeder Brief durch die Post geht jede SM durch wenigstens ein SMSC Unter SIM Karte versteht man die kleine Chipkarte die Sie in jedes Handy und jedes GSM Modem stecken m ssen um das sich beim Netzbetreiber zu identifizieren Ohne SIM Karte verweigern die Ger te jede Funktion Handies und GSM Modems speichern nicht nur Telefonb cher auf die SIM Karte sondern auch SMS Auf der SIM Karte ist auch die eigene Rufnummer MSISDN gespeichert Das folgende Bild zeigt die wichtigsten Bestandteile der SMS Server Tools und wie diese untereinander verkn pft sind Provider Queues Vodafone SMS Files Modem1 mM
30. Linux als weitaus unproblematischer herausgestellt Denken Sie bitte auch daran dass eine Infrarot Schnittstelle wesentlich flexibler einsetzbar ist Sie brauchen nicht f r jedes neue Mobiltelefon ein neues Kabel kaufen Unter Windows k nnen Sie die Infrarotschnittstelle nicht mit den SMS Server Tools benutzen weil CygWin diese nicht unterst tzt Nicht alle Mobiltelefone k nnen SMS ber Infrarot oder Serielle Schnittstelle SMS senden Achten Sie bei der Ger teauswahl auf das Stichwort GSM 07 05 oder internes Modem in der Auflistung der Funktionen Seite 18 SMS Anwendungen 2 4 4 GSM Antennen Sie k nnen selbstverst ndlich jede beliebige GSM 900 1800 Antenne an die Modems anschliessen Als besonders praktisch haben sich die abgebildeten Magnetfussantennen herausgestellt die f r KFZ Dachmontage gedacht sind Sie k nnen Antennen dieser Bauform leicht auf 19 Zoll Schr nke oder Computergeh use stellen Wenn Sie Probleme mit schwachem Empfang haben w hlen sie eine m glichst gro e Antenne und stellen Sie diese m glichst weit von anderen elektrischen Ger ten entfernt auf Mehrere GSM Antennen sollten wenigstens 10cm Abstand zueinander haben und sie d rfen ausser am Sockel nichts ber hren Bevor sie ein GSM Modem ohne Antenne einschalten sollten Sie sich wenigstens eine provisorische Drahtantenne 33 cm lang basteln Wenn Sie ein GSM Modem ohne Antenne einschalten riskieren Sie einen Ger teschaden Benutzen
31. Pr fen ronco re aa a ange A ae ar aA AE hrs AS ESE AALA ASE eN epe e S Feen 219 ZD Eisprung Erinnerung nur eiae Ad dd tiesa 220 To DasAnmeldeformula i ries O NON 220 T52 Das Anmelde S OD cuand A en sr Rn a EA EEKE A ARESYE ESNEME SAES EEEIEE REA ENE Ea 221 7 9 3 Die Tabelle mit Terminen a a e e a e a a e a e a a a T 223 E A A O NN 224 1 67 Klingelt ne Logos und Spr che aneksado 22 Lean 225 7 6 1 Gontent bereitstellen 2 2 2 RR iia 225 TO 2 DAS SO Pd ERHEBEN A A A ai 226 1 1 N Meb Formularsendet N chrichten stnim sopena carteras a nenne ae aa ankre arrana aa Kah terad esse A ies a 226 TIA Das WebMail ia i hs EN 227 TT 2 Das sende dad 227 Seite 7 SMS Anwendungen 1 Einleitung In diesem Kapitel beschreibe ich die Absichten dieses Buches Ich stelle mich selbst vor und beschreibe die Grundprinzipien der SMS und MMS Dienste 1 1 ber dieses Buch SMS ist eines von vielen Ph nomenen des 20 Jahrhunderts Urspr nglich v llig ignoriert erfreuen sich die kurzen Texte inzwischen einer erstaunlichen Beliebtheit Die Netzbetreiber und zahlreiche weitere Dienstleister erzielen durch SMS Dienste einen signifikaten Umsatz Viele Handybesitzer investieren mehr Geld in SMS Dienste als in Telefongespr che In Deutschland nutzen etwa 62 Mio B rger das Mobiltelefon davon 85 SMS Dienste Wissenschaftler sammeln Messdaten per SMS zur zentralen Auswertung und Autobesitzer lokalisieren gestohlene Fahrz
32. Preis sagt nicht unbedingt etwas ber die Qualit t der Hardware aus das wissen Sie sicher Kaufen Sie daher PC s nur bei H ndlern die Ihnen auch einen ausreichenden Reparatur und Ersatzteilservice anbieten Es w re sehr unangenehm wenn Ihr SMS Dienst und damit Ihr Gewinn tagelang ausf llt weil ein Ersatzteil nicht mehr verf gbar ist Erfahrene EDV H ndler k nnen Ihnen aus dem stehgreif sagen welche Hardwarekomponenten zuverl ssig sind und welche eher problematisch sind Im Zweifelsfall ist der Kauf eines Marken Servers angebracht wie zum Beispiel die zuvor vorgestellten Ger te von Dell Mit gro en Anbietern k nnen Sie n mlich Wartungsvertr ge und finanzielle Ausgleiche bei berschreitung gewisser Reparaturzeiten vereinbaren Und noch ein kleiner Tip zur Ausstattung von PC Servern Je weniger drin ist um so besser Bem hen Sie sich Ihre Anwendung mit m glichst wenig Hardwarekomponenten zu realisieren Je weniger Bauteile im Computer stecken desto stabiler l uft er und desto schneller k nnen defekte Teile lokalisiert werden Wenn Ihr Rechner mit unn tigen Ger tschaften best ckt ist z B Soundkarte TV Karte internes Modem usw dann entfernen Sie diese Neben der Hard und Softwareauswahl kann der mechanische Aufbau einen erheblichen Einfluss auf die Systemstabilit t haben Damit befasst sich das n chste Kapitel Seite 28 SMS Anwendungen 3 2 Mechanischer Aufbau Der mechanische Aufbau kann ein
33. QUAM var spool sms QUAM MOBILCOM var spool sms MOBILCOM provider D1 49160 49170 49171 49175 49151 D2 491520 49162 49172 49173 49174 02 49176 49179 49159 EPLUS 49163 49177 49178 49157 QUAM 49150 MOBILCOM 49156 GSM1 mit D1 Karte device dev ttyN000 incoming yes queues D1 GSM2 mit D1 Karte device dev ttyN001 incoming yes queues D1 GSM3 mit D2 Karte device dev ttyN002 incoming yes queues D2 GSM4 mit D2 Karte device dev ttyN003 incoming yes queues D2 GSM5 mit E Plus Karte device dev ttyN004 incoming yes queues 02 EPLUS QUAM MOBILCOM In dieser Konfigurationsdatei fehlen die PIN Nummern sie m ssen also die PIN s der f nf SIM Karten deaktivieren Die f nf Modems sind an ein Digi Etherlite angeschlossen denn kein normaler Computer hat f r f nf Modems ausreichend serielle Anschl sse Die Namen der seriellen Anschl sse habe ich der Installationsanleitung des Digi Etherlite entnommen Die ersten beiden Modems bedienen die Netzbetreiber Warteschlange f r D1 Das dritte und vierte Modem bedient die Netzbetreiber Warteschlange f r D2 Das letzte Modem ist f r die anderen Netzbetreiber vorgesehen Bei D1 und D2 ergibt sich somit eine h here Leistung und Schutz vor Ausfall eines einzelnen Modems Bei den anderen Netzbetreibern verzichten wir aus Kostengr nden auf ein zweites Modem denn dort ist der Kundenkreis
34. Sie auch keine Antennen mit besch digten oder eingeknickten Anschlusskabeln Seite 19 SMS Anwendungen 2 5 Betriebssysteme In diesem Kapitel stelle ich Betriebssysteme vor die ich f r SMS Anwendungen benutze Nach dem Lesen dieses Kapitels werden Sie leichter entscheiden k nnen welches Betriebssystem f r Ihre Anwendung am besten geeignet ist Ich vergleiche die Betriebssysteme Linux Solaris und Windows unter dem Hintergrund darauf SMS Anwendungen laufen zu lassen 2 5 1 Microsoft Windows Windows gibt es in zahlreichen Varianten F r SMS Anwendungen sind derzeit die folgenden Versionen geeignet Windows NT 4 Windows 2000 Server e Windows XP wobei Microsoft den Support f r Windows NT inzwischen eingestellt hat Bitte sehen Sie davon ab einen Server mit einer Workstation Version von Windows zu betreiben wie Windows 95 98 oder ME Obwohl alle Anwendungen dieses Buches auch unter diesen Versionen laufen ist der rund um die Uhr Betrieb dieser Windows Versionen nicht ratsam Viele Leute klagen dar ber dass die Workstation Versionen im Laufe der Zeit immer langsamer werden und irgendwann aus unerkl rlichen Gr nden stehen bleiben Doch dieses Problem kann leicht erkl rt werden Die Workstation Versionen haben eine einfachere Speicherverwaltung Sie sind darauf getrimmt m glichst viel Speicher und CPU Leistung f r die Anwendungsprogramme prim r Spiele zur Verf gung zu stellen Dazu verzichten
35. Sie den Exit Code weglassen wird O genommen Beispiel test28 sh bin sh echo Geben Sie etwas ein read Eingabe if SEingabe doof then echo Ich bin nicht doof exit 1 fi echo Ok danke Nach der Ausf hrung dieses Scriptes k nnen Sie den Exit Code mit echo kontrollieren Seite 136 SMS Anwendungen 4 9 10 Funktionen Funktionen sind kleine Unterprogramme die Sie mehrmals an unterschiedlichen Stellen aufrufen k nnen bin sh function Fehler echo Es ist ein Fehler aufgetreten echo 1 echo Geben Sie bitte eine 3 ein read Zahl if Zahl ne 3 then Fehler Falsche Zahl else echo Danke El Wenn Sie das Script ausf hren und eine andere Zahl als 3 eingeben erscheint diese Ausgabe Geben Sie bitt ine 3 ein 5 Es ist ein Fehler aufgetreten Falsche Zahl Die Funktion zeigt nicht nur einen festen Text an sondern auch einen Variablen Text Falsche Zahl den bergeben bekommen hat Ein Beispiel test29 sh Sie vom Hauptprogramm Innerhalb der Funktion wird der erste bergebene Text ber die Variable 1 angesprochen Wenn es mehrere Texte g be w rden diese entsprechend fortlaufend nummeriert werden test30 sh bin sh function Test echo Die bergebenen Texte sind ecfho 1 2 3 4 Test Hallo Saskia meine Schwester Dieses Script erzeugt die Ausgabe Die bergebenen Texte sind Hallo Saskia
36. Sie die Leerzeile nicht und denken Sie stets daran die Telefonnummer im internationalen Format zu schreiben Im Gegensatz zur Konfigurationsdatei smsd conf d rfen Sie hier alle Telefonnummern auch mit einem beginnen lassen Smsd entfernt es gegebenenfalls automatisch Speichern Sie solche SMS Dateien unter beliebigem Namen in das Verzeichnis var spool sms outgoing ab Smsd interessiert sich nicht f r den Dateinamen sondern nur f r den Inhalt darum d rfen Sie jeden beliebigen Dateinamen w hlen Sie sollten aber auf jeden Fall darauf achten dass jede Kurzmitteilung einen eigenen eindeutigen Dateinamen bekommt Sonst berschreiben Sie wom glich ungewollt eine noch nicht gesendete Kurzmitteilung und diese geht dann verloren Seite 178 SMS Anwendungen 5 5 Kurzmitteilungen empfangen Sie k nnen Kurzmitteilungen nicht aktiv empfangen Die SMS Zentrale SMSC schickt Ihnen einfach welche sobald Ihr SGM Modem empfangsbereit ist Sie m ssen die empfangenen Nachrichten nur noch auslesen Diesen Job nehmen Ihnen die SMS Server Tools automatisch ab sofern Sie in die Konfigurationsdatei in den Modemeinstellungen incming yes geschrieben haben Die empfangenen Nachrichten legt smsd alle in das Verzeichnis f r die hereinkommende Warteschlange ab das ist normalerweise var spool sms incoming Falls es f r Sie wichtig ist wann genau die Nachricht empfangen wurde oder welches Modem sie empfangen hat dann schauen Sie doch einf
37. Sie keine Programmpakete ab die bereits vorgegeben sind W hlen Sie zus tzlich zur Vorgabe die folgenden Programmpakete O Devel e gcc make e Editors e vim O Mail e fetchmail e procmail e ssmtp O Net e inetutils Seite 59 SMS Anwendungen e ncftp O System e procps Seite 60 SMS Anwendungen 4 2 2 3 Apache und PHP Installieren Den Webserver brauchen Sie nur auf dem Server installieren der als Webserver dienen soll Vieleicht m chten Sie auch gar keinen Webserver betreiben Installieren Sie nicht das Paket apache oder apache2 aus CygWin da diese kein PHP unterst tzen Installieren Sie den Apache Webserver mit seinem Setup Programm Die vorgegebenen Einstellungen sind Ok Packen Sie dann PHP aus und zwar in das Verzeichnis c php Ein richtiges Setup Programm gibt es bei PHP nicht F gen Sie c php in die PATH Variable ein Bei Windows 95 und 98 schreiben Sie an das Ende der Datei c autoexec bat diese Zeile PATH PATH c php Bei Windows XP und 2000 klicken Sie in der Systemsteuerung auf System und dann auf Erweitert Unten befindet sich der Button Umgebungsvariablen auf den Sie bitte klicken Suchen Sie die Variable PATH und h ngen Sie c php daran an Wie man die PATH Variable bei Windows NT ndert wei ich leider nicht Starten Sie den Computer jetzt neu um die neue Path Variable wirksam zu machen Kopieren Sie die Datei c php php ini recommended nach c window
38. Windows Installations CD Rom Installieren Sie nun die folgenden Programme Editpad Lite http www editpadpro com editpadlite html Kopieren Sie die Datei editpad exe in das Windows Verzeichnis z B c windows Starten Sie das Programm Im Men Optionen Einstellungen Verkn pfungen k nnen Sie das Programm als Standard Editor registrieren und es in das Senden An Men der rechten Maustaste integrieren nnCron Lite http www nncron ru download shtml Installieren Sie dieses Programm wenn Sie zeitgesteuert Programme starten m chten Unter Windows XP k nnen Sie dies wahlweise auch mit dem Zeitplaner in der Systemsteuerung erledigen Die Konfigurationsdatei ist c programmel cron cron tab Im Unterverzeichnis log finden Sie Protokolldateien der Cron Jobs und ggf Fehlermeldungen War FTP Daemon http www warftp org Installieren Sie den War FTP Daemon wenn Sie einzelne Verzeichnisse des Servers im Internet per FTP freigeben wollen Das Programm ist sehr flexibel und dennoch einfach zu konfigurieren daher werde ich in diesem Buch nicht weiter auf das Programm eingehen PDU Spy http www nobbi com download htm pduspy Das Programm ist n tzlich wenn Sie Probleme mit dem GSM Modem analysieren m chten Normalerweise brauchen Sie dieses Programm nicht MySQL http dev mysql com downloads MySQL ist ein Datenbank Server Installieren Sie MySQL wenn Sie dynamische Webseiten programmieren wollen oder wenn Sie
39. als ob es aus und wieder eingeschaltet worden w re ATEO schaltet das Echo aus Sie sehen danach nicht mehr was sie eingeben Dieser Befehl mag zun chst sinnlos erscheinen aber f r Programmierer kann er das Programmdesign deutlich vereinfachen Das Gegenteil ist brigens AT E1 AT CPIN zeigt an ob das Modem nach der Eingabe der PIN verlangt Die PIN wird wie beim Handy ben tigt um die SIM Karte benutzen zu k nnen und ist somit Voraussetzung f r alle anderen GSM Befehle Das Modem Antwortet auf eine der folgenden Weisen READY bedeutet dass die PIN bereits eingegeben wurde SIM PIN bedeutet dass Sie die PIN eingeben m ssen siehe n chster Befehl SIM PUK bedeutet dass die PIN wegen mehrfacher Fehleingabe gesperrt wurde ERROR bedeutet dass es ein Problem mit der SIM Karte gibt Die Bedienungsanleitung Ihres Modems erkl ren genau was die Zahl hinter ERROR bedeutet Es gibt noch andere m gliche Antworten doch die habe ich in der Praxis noch nie zu sehen bekommen Daher beschreibe ich sie hier auch nicht Schauen Sie bei Bedarf in das Handbuch des Modems AT CPIN xxxx Mit diesem Befehl geben Sie die PIN ein Unmittelbar danach bucht sich das Modem ins GSM Netz ein Den Befehl brauchen Sie nach dem Einschalten der Stromversorgung nur einmal einzugeben AT CPIN yyyyyyyy xxxx Mit diesem Befehl ndern Sie die PIN Das geht auch wenn die alte PIN wegen mehrfacher Fehleingabe gesperrt wurde Anstelle von yyy
40. also dreimal starten wenn Sie drei Modems haben Das Script soll self test sh genannt werden Seite 205 SMS Anwendungen bin sh out var spool sms outgoing 1 test in var spool sms self test 1 in while true do echo To 2 gt out echo Provider 1 gt gt out echo gt gt out echo SELF TEST MEssAGE gt gt out sleep 3600 found 1s A in if Sfound then rm in echo 1 test ok else echo 1 test failed fi done Starten Sie das obige Script durch Eingabe des Befehls self test sh GSM1 491721234567 amp Tauschen Sie die obige Telefonnummer bitte durch die Telefonnummer des Modems GSM1 aus Das Script sendet eine Testnachricht ber das genannte Modem an sich selbst Dann wartet es eine Stunde lang 3600 Sekunden Nach Ablauf der Stunde pr ft das Script ob inzwischen eine Testnachricht empfangen wurde Wenn ja werden alle Testnachrichten gel scht und eine Erfolgsmeldung angezeigt Wenn nein wird nur eine Fehlermeldung angezeigt Der ganze Vorgang wird mittels Endlosschleife so lange wiederholt bis Sie das Script mit dem Befehl pkill self test sh anhalten Starten Sie das Script self test sh f r jedes Modem indem Sie den Modemnamen und dessen Rufnummer angeben Sie haben dann eine st ndige Selbstkontrolle der SMS Server Tools self test sh GSM1 491721234001 amp self test sh GSM2 491721234002 amp self test sh GSM3 491721234003 amp Das amp Zeichen am Ende des Befeh
41. angeben Dann l uft das Programm im Hintergrund und pr ft alle 300 Sekunden auf neue eMails Mit der Option quit K nnen Sie den D mon wieder beenden fetchmail f etc fetchmailrc d 300 fetchmail quit Eine typische eMail Datei sieht etwa so aus Return Path lt root linux local gt Date Wed 12 Feb 2003 17 36 42 0100 From root lt root linux local gt Message Id lt 200302121636 h1CGagJ16586 linux local gt To s fringstlinux local Subject Test 3 Hallo Du Schlafm tze Jedes Programm das an der bertragung der Mail beteiligt ist f gt weitere Informationen in den Header ein Wundern Sie sich also nicht wenn Ihre Mails sehr viel gr ssere Header haben Seite 82 SMS Anwendungen 4 5 5 eMail Verarbeiten Sie wissen nun wie Sie eMails aus POP3 Postf chern abrufen und in Dateien speichern Doch wie sorgt man daf r dass diese sofort nach dem Empfang von irgendwelchen Programmen verarbeitet werden ndern Sie die etc fetchmailrc wie folgt ab poll mail isis de protocol POP3 user mustermann pass geheim mda usr local bin popmail Schreiben Sie dies bitte wieder in eine einzige Zeile sonst funktioniert es nicht Immer wenn eine eMail empfangen wird startet fetchmail nun das Programm popmail und bergibt diesem die Mail Das Programm popmail k nnte ein selbstgemachtes Shell Script dieser Art sein bin sh filename mktemp tmp mail XXXXXXX cat gt filename echo Sie haben Post in Datei file
42. bieten kommerziellen Support an und dieser wird nur selten in Anspruch genommen weil die Autoren der Programme meist direkt per eMail ansprechbar sind und gerne helfen Da die meisten Softwareentwickler von Linux Hobbyprogrammierer Sch ler und Studenten sind finden Sie im Internet kostenlose Hilfe f r viele Probleme und Aufs tze ber alles was man als Linux Administrator lernen sollte Ein umfangreiches Verzeichnis mit Linux Software finden sie z B unter http www freshmeat net Linux ist in der Regel erheblich performanter als Windows Sie k nnen dies nachvollziehen indem Sie den Apache Webserver unter beiden Betriebssystemen installieren und die Zeiten vergleichen Wenn Sie eine SMS Anwendung unter Linux entwickeln wollen brauchen sie unbedingt Personal mit entsprechenden Linux Kenntnissen Bei Windows kann man sich notfalls noch durchklicken wenn man nicht Bescheid weiss und fachlichen Rat bekommt man f r Windows in jedem Computershop Aber um Linux zu konfigurieren muss man sich mit der Befehlszeile und langen Anleitungen vertraut machen Mit Linux kennen sich nur wenige H ndler aus und die verkaufen ihr KnowHow teuer Kostenlose Hilfe gibt es im Internet aber ohne Grundkenntnisse hat man es auch dort schwer Seite 22 SMS Anwendungen 2 6 Programme In diesem Kapitel stelle ich Programme vor die ich f r SMS Anwendungen benutze Sie werden fest stellen dass die Programme alle prim r unter Linux entwickelt wur
43. blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 491721111111 blabla 2003 05 03 2003 05 18 2003 05 31 2003 06 15 2003 06 28 2003 07 13 2003 07 26 2003 08 10 2003 08 23 2003 09 07 2003 09 20 2003 10 05 2003 10 18 2003 11 02 2003 11 15 2003 11 30 2003 12 13 2003 12 28 2004 01 10 2004 01 25 2004 02 07 2004 02 22 2004 03 06 2004 03 21 24 rows in set 0 00 sec mysql gt E Neu Befehlsfenster Diese Tabelle m ssen Sie nat rlicht erstmal anlegen sonst kann das Script nicht funktionieren stefan server gt mysql u root p mysql gt create database smsd Query Ok mysql gt use smsd Database changed mysql gt create table eisprung gt id int auto_increment not null gt primary key id gt handynummer char 15 gt passwort char 15 gt datum date gt typ Char 1 gt Query Ok Seite 223 SMS Anwendungen 7 5 4 Der Cronjob Ihre Kundinnen k nnen den SMS
44. dem Standard FTP Client ausgeliefert Dieser ist f r interaktives Arbeiten gut geeignet jedoch f r automatische Datei bertragungen nicht so gut Den FTP Client startet man in der Shell oder in der Dos Eingabeaufforderung mit dem Befehl ftp Servername Anstelle des Servernamens kann man auch dessen IP Adresse angeben ftp localhost Verbunden zu pci 228 Jgaa s Fan Club FTP Service WAR FIPD 1 67 85 Ready 220 Please enter your user name Benutzer pce1 none gt gt mustermann 331 User name okay Need password Kennwort mustermann 238 User logged in proceed Ftp gt _ Nach dem Verbindungsaufbau werden Sie zur Eingabe des Usernamens und Passwortes aufgefordert Ich empfehle danach immer gleich die folgenden Befehle einzugeben binary Schaltet von 7 Bit Transfer auf 8 Bit um Das ist f r alle Dateien n tig ausser ASCII Texte Das Gegenteil text konvertiert die Zeilenumbr che und entfernt in jedem Byte das h chste Bit hash Aktiviert eine Statusanzeige n tzlich bei gro en Dateien Zur Daten bertragung braucht man einen oder mehrere dieser Befehle cd Verzeichnis wechselt in ein anderes Verzeichnis auf der Seite des Servers dir listet das Inhaltsverzeichnis auf rm Dateiname l scht eine Datei rmdir Verzeichnis l scht ein Verzeichnis mkdir Verzeichnis erstellt ein Verzeichnis Seite 85 SMS Anwendungen put Dateiname l dt eine Datei auf den FTP Server hoch get Dateiname l dt eine Datei
45. der Funktion test1 hat sich also berhaupt nicht auf die globale Variable ausgewirkt Sie sehen dass es hier also zwei Variablen mit dem selben Namen a gibt Beide haben nichts miteinander zu tun Sie haben im vorherigen Kapitel bereits gesehen wie Sie Variablen an eine Funktion bergeben so dass sie auch dort bekannt ist Sie m ssen die zu bergebenden Variablen hinter den Namen der Funktion in Klammern schreiben also so test9 php lt html gt lt body gt lt php function test a print Der Wert in test ist a lt br gt Swert Zwei print Der neue Wert in test ist a lt br gt Seite 120 SMS Anwendungen Sa Eins print Der globale Wert ist a lt br gt test a printf Der globale Wert ist immer noch a lt br gt gt lt body gt lt html gt Dieses Programm erzeugt die Ausgabe Der globale Wert ist Eins Der Wert in test ist Eins Der neue Wert in test ist Zwei Der globale Wert ist immer noch Eins Der Inhalt der Variable a wird hier als Argument an die Funktion bergeben und ist daher jetzt auch innerhalb der Funktion bekannt Wie sie sehen wird wirklich nur der Inhalt bergeben und nicht die Variable selbst Denn die Funktion hat der Variablen den neuen Wert Zwei zugewiesen doch davon hat das Hauptprogramm nichts mitbekommen Variablen die Sie als Argument einer Funktion bergeben k nnen dort also verwendet werden doch sind nderung durch die Funktion i
46. deren Speicherplatzbedarf Die Programme die Sie zus tzlich zum Betriebssystem installieren sollten Sie aber genau unter die Lupe nehmen insbesondere den Apache Webserver Dessen Logfiles haben schon so manchen Server lahm gelegt Protokolldateien werden von den meisten Programmen unendlich lange beschrieben So ist es auch beim Apache Webserver und bei den SMS Server Tools Der erste L sungsansatz ist sicherlich diese Dateien t glich umzubenennen und neuen Dateien zu beginnen Doch das funktioniert so nicht Denn die laufenden Programme ffnen Protokolldateien in der Regel nur ein einziges mal beim Programmstart und erwarten fortlaufend in sie hinein schreiben zu k nnen Daher erlaubt Windows Ihnen gar nicht erst die Datei umzubenennen oder zu l schen solange sie ge ffnet ist Unter Unix verh lt es sich beim umbenennen einer Datei etwas anders aber auch nicht besser Wenn Sie dort eine Datei umbenennen w hrend Sie ge ffnet ist bemerkt das laufende Programm davon nichts und schreibt munter in die gleiche Datei weiter Die Tatsache dass sich zwischenzeitlich deren Dateiname ge ndert hat spielt keine Rolle Ihre Datei wird also nach wie vor langsam immer gr sser Und wenn Sie die Datei einfach l schen dann wird Sie lediglich aus dem Inhaltsverzeichnis verschwinden aber sie existiert in Wirklichkeit weiterhin und wird immer noch wachsen dass meine obige Behauptung stimmt k nnen Sie so nachvollziehen ffnen Sie zwei She
47. die Felder 2 und 4 herausgefiltert Beachten Sie dass die Ausgabe das selbe Trennzeichen benutzt wie die Eingabe Seite 143 SMS Anwendungen 4 9 15 3 sed Sed ist ein sehr umfangreiches Programm mit dem man Texte ver ndern kann Es gibt eigene B cher f r sed so umfangreich sind die Funktionen Ich m chte Ihnen hier nur ein paar wenige Anwendungsbeispiele von sed zeigen die ich h ufig benutze Wie cat und cut liest auch sed wahlweise aus einer Textdatei oder von der Tastatur bis Sie lt Strg D gt dr cken Die Eingabe und die Ausgabe l sst sich wiederum umleiten Sed ver ndert die Quelldatei nicht sondern zeigt nur deren Inhalt in ver nderter Form an Angenommen Ihre Textdatei test txt hat diesen Inhalt Hallo das Wetter ist sch n und ich muss lernen So lesen Sie aus einer Textdatei nur bestimmte Zeilen aus w hrend Sie die brigen Zeilen verwerfen sed 2 4p silent test txt das Wetter ist 2 4p bedeutet also Gib nur die Zeilen 2 bis 4 aus Wenn Sie nur eine Zeile haben wollen entf llt das Komma im Befehl sed 2p silent test txt Der n chste Befehl gibt den ganzen Text aus l scht aber die erste Zeile sed 1d test txt Sed kann auch W rter suchen und ersetzen sed s sch n schlecht g test txt Das Suchwort sch n ist ein regul rer Ausdruck Im bern chsten Kapitel erkl re ich Ihnen was genau regul re Ausdr cke sind Lesen Sie es durch es lohnt sich Seite 144 SMS Anwendung
48. ein g ltiger Ausdruck reihen mysql_num_rows result spalten mysql_num fields result Mit diesen beiden Funktionen ermitteln wir die Anzahl der Reihen und Spalten des Ergebnisses Nur select Befehle liefern ein tabellarisches Ergebnis Alle anderen SQL Befehle sind einfach nur Erfolgreich oder nicht erfolgreich for Si 0 i lt spalten i Sname mysql_field_name result i printf lt th gt s lt th gt n name Diese Programmschleife soll die Namen aller Spalten als Tabellen berschrift ausgeben Dabei ist es wichtig zu wissen dass die Erste Spalte die Nummer 0 hat Die for Schleife beginnt daher mit O zu z hlen Mit der Funktion mysql_field_name ermitteln wir die Namen jeder Spalte und geben diesen mit einem printf Befehl aus for j 0 j lt reihen j print lt tr gt Sreihe mysql_fetch_row result for i 0 i lt spalten i printf lt td gt s lt td gt n Sreihe i print lt tr gt n Hier haben wir zwei for Schleifen ineinander verschachtelt denn wir wollen nun alle Reihen der Tabelle auslesen und in jeder Reihe alle Spalten auslesen Auch bei den Reihen beginnt die Nummerierung mit 0 daher beginnen hier wieder beide for Schleifen mit O zu z hlen Mit print und printf Befehlen werden die Werte ausgegeben Die HTML Ausgabe die von diesem PHP Programm erzeugt wird sieht z B so aus lt html gt lt body gt Dies ist das Ergebnis einer SQL Abf
49. einfache typische Firewall hat z B drei Netzwerkanschl sse Einer f hrt ber einen Router ins Internet einer f hrt in Ihr Firmen Netzwerk und der dritte Anschluss f hrt zu Ihren Servern Ich rate davon ab Firewalls unter Windows zu betreiben weil Windows das Ziel von fast allen Angriffen ist und ausserdem immer wieder Sicherheitsl cken in Windows entdeckt werden In den meisten Linux Distributionen ist Firewall Software bereits enthalten bei Solaris m ssen Sie diese dazu kaufen Die Firma SuSE bietet eine spezielle Linux Firewall Distribution an in der sich nichts weiter befindet als die f r Firewalls n tige Software sowie sehr komfortable Programme zur Konfiguration derselben Seite 33 SMS Anwendungen 3 7 Konkretes Beispielsystem Nun m chte ich Ihnen beispielhaft einen Hardwareaufbau zeigen mit dem Sie alle in diesem Buch beschriebenen Anwendungen zuverl ssig realisieren k nnen Hl Ey HEN Hl Ha Hl Koss DUDE uamaj pocoo Doop acociy hi Modern GSM Modem GSM Modem SM Modem D1 D2 andere SM Modem GSM Moden G D1 D2 andere ej Internet y Router y N T Firewall BR A gt ET 4 Adminis works Das System ist teilweise redundant aufgebaut Ich habe mich hier f r einen Kompromiss zwischen Aufwand und Nutzen entschieden Die beiden SMS Server sind Dell Poweredge 350 mit Linux und einer zus tzlichen Netzwerkkarte Die
50. fest dass das Modem beim Einschalten und danach alle 5 Minuten eine Kurzmitteilung senden soll amp CNF BOOT s01721234567 Auto Ein HP amp CNF MSG s01721234567 Auto Timer 5 Wenn Sie mehrere Fahrzeuge berwachen m chten vergeben Sie f r jedes Auto einen eindeutigen Text oder verwenden Sie die Rufnummer zur Unterscheidung Sie k nnen das Modem so konfigurieren dass es nach Abschalten der Z ndung nicht sofort aus geht Der folgende Befehl stellt das Modem so ein dass es sich erst 20 Minuten verz gert abschaltet amp CNF IGN 20 Sie k nnen Werte im Bereich 0 60 einsetzen 0 bedeutet dass das Modem sofort aus geht Das Modem sendet nun beim Einschalten die Position des Fahrzeuges sowie danach alle 5 Minuten 7 2 2 Empf ngerseite Auf der Empf ngerseite installieren Sie die SMS Server Tools wie weiter vorne im Buch beschrieben Nun brauchen Sie nur noch ein Ereignisprogramm dass die empfangenen Nachrichten in eine SQL Datenbank eintr gt Speichern Sie das folgende Script als usr local bin gpsevent sh ab bin sh if 1 RECEIVED then exit 1 fi SENT formail zx Sent lt 2 TEXT formail I lt 2 SQL ARGS h localhost u root ppassword D smsd s e mysql SQL ARGS insert into gps sent text values SSENT TEXT Passen Sie die Parameter in der Zeile SQL_ARGS entsprechend Ihrer Datenbank an Dann richten Sie es als Ereignisprogramm in der Konfigurationsdatei smsd co
51. in Sekunden seit der letzten Statistik Datei Anzahl der verweigerten SM z B wegen schwarzer Telefonnummer Z hler pro Modem Name des Modems Anzahl erfolgreich gesendete SM Anzahl fehlgeschlagene SM Anzahl empfangene SM Anzahl mehrfacher Fehler Modem blockiert Anzahl der Sekunden die das Modem mit Senden besch ftigt war Anzahl der Sekunden die das Modem mit Empfangen besch ftigt war Alle Zahlen werden auf Null zur ck gesetzt sobald sie in eine Datei geschrieben wurden Der Dateiname wird aus dem Datum und der Uhrzeit zusammengestellt im Format YYMMDD hhmmss Jahreszahl Monat Tag Stunde Minute sekunde Die SMS Server Tools stellen sicher dass Statistiken immer zur gleichen Zeit geschrieben werden Wenn Sie in der Konfigurationsdatei beispielsweise festlegen dass smsd jede Stunde eine Datei schreiben soll 3600 Sekunden dann geschieht dies immer zur n chsten vollen Stunde auch wenn Sie das Programm irgendwann zwischen zwei vollen Stunden gestartet haben Smsd geht sehr sorgsam mit Ihren Statistiken um Im Gegensatz zu den meisten anderen Programmen verlieren Sie keine Zahlen wenn Sie das Programm beenden Dies gilt auch f r den Kill Befehl solange Sie nicht die ganz grobe Methode kill 9 benutzen Wenn Sie das Programm beenden merkt es sich die aktuellen Zahlen in einer tempor ren Datei Beim n chsten Mal wenn es wieder Statistiken schreibt addiert es diese W
52. in pata 167 5 2 1 Elnfache KonfiguratiOnSdatel ccoo diari ee A A A IA RE adi AAA Ad iaa 168 5 2 2 Mehrere Modems und Netzanbieter coocormoocoonorinsecicananronsrncnntn near nani recorrer r nae a paraaan aa eaaa ipanaa aandaa naaa aa 169 5 2 3 Alle K nfigurati nseinstell ngen an ae di aa 170 5 2 3717 Haupteinstellungen 2 2 125 2 Sera RER 171 5 2 3 2 Warteschlangen iii A E LAA a ae id 173 E A AO OTE E 173 5 2 3 4 Modemeinstelllnge iii A e 175 5 3 SMS Server Tools Sat SOPA ia 177 5 4 Kurzmitteil ngen SEO iii nahe AAA A A A KASR ias 178 5 5 Kurzmitteilungen empfangen 4us4240unnnannnnnnonnnnnnnnnnonnnnnnnnnnnnannnnnnannnnnnnnnnannnnnsnnnnnnnannnnnnnnnnannnnnnnnnnnnnnnannnnnnnnnnnnnnnnnnnnnnnnnn 179 5 6 SMS Dated tc 180 5 6 1 Texte senden 2 2 OA 181 5 6 2 Bin rdateien senden u 22h nein In a Aaaa EEE NA a aa anni E inian 182 5 6 3 Unicode Texte SON ma ains iaar aaro aE aAa EAA ANES a TEA a Taa di AA i 183 50 4 lEMpfangene Texte rt ar ie ea AEA e nenne e EAE e a E e a E Ea ARE a nee edad 184 5 6 5 Empfangene Bin rdat ie M i ieienia d doeii A A EIN ball 185 5 6 6 Empfangene Statusbericate 1m 186 5 6 7 LOS OM ii A E NE O EE EA E 187 EE EE A E a ee RO NN 188 5 8 MAUI ii A ae ati nee 189 5 9 EreignisprogramMer 2 2 4 2u ii taa 190 5 10 Alarm Programme A A Ad ARO IE a 191 9 11 Schw rze und Weie Listen iii Sie aia caiste 192 12 ESTAS Dat ii A dd dE dto fen 193
53. ist gruen Die Farbe ist blau Seite 135 SMS Anwendungen 4 9 9 7 break continue und exit Die Anweisung break unterbricht eine laufende Schleife Es werden keine weiteren Wiederholungen mehr durchgef hrt test26 sh bin sh echo Geben Sie etwas ein oder nur Enter zum beenden while true do read Text if z SText then break fi echo Danke done Dieses Script ist funktionell fast mit test24 sh identisch Es wurde nur ein anderer L sungsansatz verfolgt Die while Schleife wiederholt sich zun chst unendlich oft denn der Befehl true liefert immer eine 0 was Erfolgreich bedeutet Mehr macht der true Befehl nicht Das Gegenteil ist brigens der false Befehl was f r eine Uberraschung Die if Anweisung pr ft ob der Text leer ist Wenn er leer ist wird die Schleife abgebrochen Die continue Anweisung erzwingt die n chste Schleifenwiederholung und sorgt daf r dass die restlichen Befehle der aktuellen Schleife nicht mehr ausgef hrt werden test27 sh bin sh echo Geben Sie etwas ein oder Strg D zum beenden while read Text do IE loz STExe 5 chen continue fi echo Danke done Wenn Sie dieses Script ausf hren k nnen Sie beliebig viele Zeilen eintippen auch Leerzeilen Doch ein Dankesch n erhalten sie nur f r Zeilen die nicht leer sind Die exit Anweisung beendet das gesamte Shell Script mit sofortiger Wirkung Sie k nnen einen Exit Code mit angeben wenn Sie m chten Wenn
54. keine Antwort vom Endger t Fehler Dienst abgelehnt Fehler Qualit t des Dienstes nicht verf gbar Fehler Fehler im Endger t Seite 42 SMS Anwendungen 4 1 6 PDU Datenformat Senden In den Zahlenketten geh ren immer zwei Ziffern zusammen Jedes P rchen ist ein Byte in Hexadezimaler Darstellung Eine zu sendende SMS sieht z B so aus 0001000C919471123254F600000AE8329BFD4697D9EC37 L nge der SMSC Nummer 00 bedeutet dass die SMSC Nummer dem Modem bereits bekannt ist Bit 6 User Data Header Indikator Ist 1 wenn die Daten einen Header beinhalten Nur bei 8 Bit Bit 5 Ist 1 wenn ein Status Report gew nscht wird Bit 4 3 Format der G ltigkeitsdauer der SMS 00 m glichst lange Bit 2 Wenn 1 verwirft das SMSC Nachrichten mit gleicher ID Nummer in der Warteschlange Bit 1 0 Ist 01 um eine zu sendende SMS anzuzeigen ID Nummer der Nachricht Bei 00 vergibt das Modem automatisch eine Nummer L nge der Empf nger Nummer hier 12 Ziffern Die Formatangabe wird nicht mit gez hlt Format der Empf nger Nummer 91 International A1 National D1 Alphanumerisch Empf nger der SMS zu der dieser Report geh rt Hier 49172123456 Protokoll Art OO normale SMS Bit 7 2 Datencodierung 111100 7bit Text 111101 8bit Daten 000110 Unicode Text Bit 1 0 Klasse 00 Flash SMS 01 normale SMS G ltigkeitsdauer der SMS Entf llt hier weil in den Bits 4 3 oben 00 steht
55. lassen kann es passieren dass das Script von einer falschen Shell ausgef hrt wird und es somit zu unerwarteten Fehlermeldungen kommt Die zweite Zeile ist ein Kommentar In der dritten und vierten Zeile wird der echo Befehl benutzt um Text auszugeben Der date Befehl zeigt das aktuelle Datum an Eine Erkl rung des Parameters d m y finden Sie in der Manual Page von date man date Echo Befehle schliessen die Textausgabe immer mit einem Zeilenumbruch ab es sei denn sie schreiben ein c an das Ende der Zeichenkette Daher erscheint das Datum direkt hinter dem Wort der und nicht in einer eigenen Zeile Andere N tzliche Steuerzeichen sind t f r Tabulator a f r einen Piepston und n f r einen zus tzlichen Zeilenumbruch Die Option e brauchen entf llt unter Solaris Unter Linux und Windows ist sie immer dann erforderlich wenn Sie Steuerzeichen wie t a n und c benutzen Shell Scripte k nnen jeden beliebigen Namen haben Sie werden beim Lesen dieses Buches feststellen dass ich Scripte meistens nach dem Schema name sh benenne Dies ist meine pers nliche Vorliebe Scripte zu benennen Einen technischen Grund gibt es daf r nicht Shell Scripte werden durch das x Recht als ausf hrbar gekennzeichnet nicht durch den Dateinamen Seite 124 SMS Anwendungen 4 9 2 Der printf Befehl Den printf Befehl kennen Sie bereits von PHP falls Sie das Kapitel gelesen haben Printf gibt einen Text auf und f gt zus tzlich Za
56. meine Schwester Seite 137 SMS Anwendungen 4 9 11 Spezielle Variablen Ein paar spezielle Variablen haben Sie bereits kennen gelernt Ich m chte Sie ihnen noch einmal in Zusammenhang mit anderen vorstellen ist der eigene Name des Scriptes sind die Argumente einer Funktion oder eines Scriptes ist die Anzahl der Argumente sind alle Argumente als Liste einzelner Texte sind alle Argumente als ein einziger langer Text oder sind alle Argumente zerlegt in Worte ist der Exit Code des letzten Befehls Zufallszahl im Bereich 0 32767 nur bash Shell Wie man die Variablen 1 bis 9 benutzt haben Sie bereits in Zusammenhang mit den Funktionen gesehen Sie k nnen die Variablen auch benutzen um Argumente beim Scriptaufruf zu lesen test31 sh bin sh echo Sie haben Argumente eingegeben echo Das Script heisst 0 echo Das erste Argument ist 1 echo Alle Argumente Zusammen sind Starten Sie das Script indem Sie den Befehl Itest31 sh Eins Zwei Drei eingeben Die Bildschirmausgabe ist dann Sie haben 3 Argumente eingegeben Das Script heisst test3l sh Das erste Argument ist Eins Alle Argumente Zusammen sind Eins Zwei Drei Im folgenden Beispiel m chte ich Ihnen den Unterschied zwischen und demonstrieren test32 sh bin sh for Wort in e do echo SWort done echo nou for Wort in de echo SWort done Die erste for Sc
57. mktemp 1 4 README rxut 2 7 9 README eygutils 1 1 3 README ncftp 3 1 4 README ssmtp 2 38 7 README cygwin doc 1 3 1 README ncurses 5 2 README terminfo 5 2 README fetchmail 6 2 8 README openss1 8 9 7 README zlib 1 1 4 README gdbm 1 8 8 README pcre 3 7 README Be Dieser Befehl zeigt alle Dateien an in deren Name irgendwo READ vorkommt Unter MS Dos werden die Jokerzeichen vom Befehl selbst erkannt und verarbeitet Sie k nnen z B dir txt eingeben weil der dir Befehl weiss was er mit dem Stern anfangen soll Versuchen Sie das einmal mit Notepad G WINNT gt dir txt Datentr ger in Laufwerk C ist C Datentr gernummer B4N7 8355 Verzeichnis von G WINNT 13 54 15 695 Active Setup Log txt 13 54 11 914 Bind List Log txt 11 86 8 896 brndlog txt 13 54 98 189 IE Setup Log Txt 11 86 1 692 Reg Save Log txt 14 88 14 584 RunOnceEx Log txt 15 34 187 setuplog txt 7 Dateilen gt 150 997 Bytes 6 990 539 264 Bytes frei Dann wird Notepad meckern denn mit dem Stern kann es nichts anfangen und es versucht unerwarteter Weise die Datei txt zu laden die freilich nicht existiert Unter Windows werden Sie fest stellen dass sehr viele Programme Jokerzeichen korrekt erkennen aber leider nicht alle MS Word 2000 und vielleicht auch ltere Versionen kann es Unter Unix werden die Jokerzeichen von der Shell erkannt und durch die echten Dateinamen ausgetauscht Sie k nnten dort also Editpad mit Jokerzeichen starten editpad
58. nun zwei einzelne W rter geworden und die Leerzeichen sind verloren gegangen Wenn Sie wissen dass in einer Variablen mehr als nur ein einziges Wort steht sollten Sie die Variablennamen also immer in Anf hrungsstriche schreiben Variablen die Sie in einem Shell Script setzen sind ausserhalb des Shell Scriptes nicht sichtbar Der export Befehl macht Variablen extern sichtbar Beispiel test8 sh bin sh Namel Cicelle Name2 Monique echo Namel Name2 export Name2 F hren Sie das Script einmal aus indem Sie test9 sh eingeben Die beiden Namen werden angezeigt Geben Sie nun echo Name1 Name2 ein Sie sehen nur den Namen Monique denn nur dieser wurde mittels export Befehl exportiert Der Name Cicelle ist ausserhalb des Scriptes unsichtbar Eine andere M glichkeit Variablen zu exportieren geht so test9 sh bin sh Namel Cicelle Name2 Monique echo Namel Name2 F hren Sie das Script aus indem Sie Htest9 sh eingeben Pr fen Sie den Erfolg indem Sie nochmal echo Name1 Name2 eingeben Dieses mal sind beide Namen auch ausserhalb des Scriptes bekannt geworden denn Sie haben das Script mit dem Punkt Befehl gestartet Man sieht sowas nur selten denn der Punkt Befehl hat einen entscheidenden Nachteil Man kann sich nicht mehr aussuchen welche Variablen man extern bekannt machen will Es werden einfach alle Variablen exportiert Wenn Sie innerhalb eines Scriptes ein anderes aufrufen sozusagen
59. smsd SQL TABLE sms_log SQL_HOST ist der Rechnername auf dem die MySQL Datenbank installiert wurde SQL_USER ist der Username mit dem sich das Script an die Datenbank anmelden soll SQL_PAssWORD ist das Passwort mit dem sich das Script an die Datenbank anmelden soll Schreiben Sie das Passwort zwischen die Anf hrungsstriche dass Sie bei der Installation der Datenbank festgelegt haben SQL_DATABASE ist der Name der Datenbank die von den SMS Server Tools verwendet werden soll SQL_TABLE ist der Name der Tabelle in die die Protokolle eingetragen werden sollen Normalerweise brauchen Sie nur das Passwort und die Hostnamen anpassen Editieren Sie die Konfigurationsdatei etc smsd conf und tragen Sie dort einen Eventhandler ein eventhandler usr local bin mysmsd Kontrollieren Sie ob die folgenden Programme installiert sind denn das Script ben tigt sie mysql client formail sed cut Jetzt m ssen Sie die Datenbank anlegen und eine leere Tabelle die sp ter mit den Protokolldaten gef llt wird Die Tabelle soll folgende Struktur haben Field Type Null Key Default Extra id int 11 PRI NULL auto_increment type char 16 YES NULL sent datetime YES NULL received datetime YES NULL sender char 32 YES NULL receiver char 32 YES NULL status char 3 YES NULL ms
60. sollte diese Methode kennen denn Sie ist allgemein immer anwendbar Auch die Windows Administratoren kann ich an dieser Stelle beruhigen denn die hier genannte L sung funktioniert auch unter Windows innerhalb der CygWin Shell Seite 201 SMS Anwendungen e Zun chst kopieren Sie die Protokolldatei in eine neue Datei um Dann kopieren Sie dev null in die Protokolldatei hinein Das Ger t dev null liefert einfach nichts daher der Name Durch das Kopieren von nichts in die Protokolldatei l schen Sie deren Inhalt Die Datei existiert also weiterhin doch sie ist nun leer Das funktioniert sowohl unter Unix als auch unter Windows In der Praxis automatisiert man diesen Vorgang durch einen Cron Job z B so 10 0 cp var log smsd log var log smsd log old cp dev null var log smsd log Unter Windows m ssen Sie den Cronjob so schreiben bitte alles in eine einzige Zeile 10 0 ce cygwin bin bash c cp var log smsd log var log smsd log old cp dev null var log smsd log Sie m ssen unter Windows bash c schreiben weil es sich um CygWin Befehle handelt Ohne diese Umschreibung kann nnCron Lite nur Dos oder Windows Befehle ausf hren So wird die Protokolldatei jede Nacht um 0 10 Uhr gek rzt Die alten Daten des Vortages befinden sich immer im smsd log old Sie wundern sich jetzt vielleicht warum ich gerade 0 10 Uhr gew hlt habe und nicht 0 00 Uhr Ich vermeide Cron Jobs zu exakten vollen Stunden insb
61. ssen Sie aber unbedingt einfache Anf hrungsstriche benutzen weil sonst die Shell das Jokerzeichen durch alle passenden lokalen Dateinamen ersetzt und das wollen Sie nicht Zwei richtige Beispiele ncftpget u mustermann p test MeinServer download tmp test txt ncftpget u mustermann p test MeinServer download tmp test Dieser Befehl holt test txt vom Server ab und speichert sie in das Verzeichnis download Wenn Sie die Option DD anwenden also ncftpget DD u werden die Dateien nach erfolgreicher bertragung vom Server gel scht Sie k nnen auch mehrere einzelne Quelldateien zum Download benennen Mit der Option R downloaden sie ein ganzes Verzeichnis z B ncftpget R u mustermann p test MeinServer download tmp Nach diesem Download haben Sie auf Ihrem Rechner das Verzeichnis download tmp mit allen Dateien Neftpget liefert einen Return Code der Aufschluss ber Erfolg oder Misserfolg anzeigt Innerhalb von Scripten k nnen Sie damit nach erfolglosen bertragungen entsprechend reagieren Sie k nnen den Returncode anzeigen indem Sie unmittelbar nach der Daten bertragung den Befehl echo eingeben O bedeutet dass die bertragung erfolgreich war Andere Zahlen zeigen unterschiedliche Fehler an Die manual Page man ncftpget enth lt an Ende ein Liste der m glichen Fehlercodes Seite 87 SMS Anwendungen 4 6 3 Automatische FTP Uploads Das Senden von Dateien geht prinzipiell genau so wie d
62. start und hat eine bestimmte L nge Wenn man die L nge nicht angibt wird der gesamte Rest zur ckgegeben Vergleicht die Zeichenkette s mit dem regul ren Ausdruck r Es werden die Variablen RSTART und RLENGTH gesetzt Wenn der Ausdruck nicht gefunden wurde ist RSTART 0 Match gibt die Position oder O als Ergebnis zur ck Sucht im Ziel nach dem regul ren Ausdruck r und ersetzt den ersten gefundenen Abschnitt durch die Zeichenkette s Wenn kein Ziel angegeben wird wird 0 verwendet Wie sub ersetzt aber alle gefunden Abschnitte Sucht ein Wort in der Zeichenkette s und gibt die gefundene Position zur ck Das Ergebnis ist 0 wenn das Wort nicht gefunden wurde Zerlegt die Zeichenkette s in einzelne Felder Jedes Feld wird ein Element im Array Wenn kein Separator angegeben ist wird FS verwendet Achtung Regul re Ausdr cke d rfen zur besseren Kennzeichnung auch zwischen zwei Schr gstriche geschrieben werden anstatt zwischen doppelte Anf hrungsstriche Funktionen f r Ein Ausgabe Schlie t eine Datei Liest eine Zeile aus der angegebenen Datei Wenn man keinen Dateinamen angibt wird die aktuelle Eingabedatei benutzt Wenn keine Variable angegeben wird dann wird 0 verwendet F hrt einen Befehl aus und schreibt dessen Ausgabe in die Variable Wenn keine Variable angegeben wird dann wird 0 verwendet F hrt einen externen Unix Befehl aus und gibt den Status zur ck Sons
63. table tabelle2 select from tabelle1 oder create table tabelle2 select from tabelle1 where datum lt 2003 04 01 Seite 103 SMS Anwendungen 4 8 Dynamische Webseiten mit PHP Es gibt viele Scriptsprachen mit denen man dynamische Webseiten programmieren kann Eine davon ist PHP welche ich Ihnen in diesem Kapitel vorstellen m chte Ich zeige Ihnen die grundlegenden Befehle und Regeln zum schreiben von dynamischen Webseiten mit PHP Nach dem Durcharbeiten dieses Kapitels werden Sie imstande sein eigene Seiten zu Programmieren und Ihre PHP Kenntnisse anhand der Original Dokumentation von PHP zu erweitern PHP ist sehr umfangreich daher sollten Sie auf jeden Fall einen Blick in die Original Dokumentation werden insbesondere in die Funktionsliste 4 8 1 Die erste Webseite In den Merklisten habe ich die genaue Position der Konfigurationsdateien und Webseiten angegeben Im Folgenden schreibe ich nur noch vom htdocs Verzeichnis oder der httpd conf Konfigurationsdatei Schauen Sie gegenenenfalls nochmal in der Merkliste nach wo sie die Dateien zu suchen haben Falls Sie nicht das vorgegebene htdocs Verzeichnis f r die Webseiten benutzen wollen dann legen Sie sich jetzt bitte irgendwo anders ein leeres Verzeichnis an Offnen Sie dann die Datei httpd conf und tragen Sie Ihr neues Verzeichnis dort ein Relevant sind die folgenden zwei Zeilen DocumentRoot usr local apache htdocs lt Directory usr local apache htdocs g
64. war Andere Zahlen zeigen unterschiedliche Fehler an Die manual Page man ncftpput enth lt an Ende ein Liste der m glichen Fehlercodes Seite 88 SMS Anwendungen 4 7 MySQL Anwenden SQL Datenbanken sind komplizierte Programme weil sie vielseitig schnell und dennoch einfach anwendbar sein sollen Genau aus diesem Grund sind sie auch so weit verbreitet MySQL ist ein kostenloser SQL Server Sein Funktionsumfang ist minimalistisch doch f r SMS Anwendungen v llig ausreichend Zu MySQL geh rt eine knappe aber vollst ndige Dokumentation Da die Dokumentation f r Anf nger schwierig ist habe ich mich entschlossen Ihnen in diesem Kapitel die Grundlagen von MySQL zu zeigen Das Kapitel beschreibt nicht alle Funktionen und Schikanen von MySQL sondern es soll Ihnen lediglich einen einfachen Einstieg erm glichen Die Details k nnen Sie sich sp ter anhand der Originalen MySQL Dokumentation aneignen falls dazu berhaupt Bedarf besteht Tippen Sie alle Fett geschriebenen Befehle der Reihe nach ab um die Beispiele nachzuvollziehen Sie bauen aufeinander auf daher lassen Sie bitte keine Befehle aus Wenn Sie sich bereits mit SQL auskennen k nnen Sie das Kapitel berspringen 4 7 1 Das Funktionsprinzip von MySQL MySQL ist eine Client Server Anwendung Das bedeutet dass Sie einen Datenbank Server betreiben sowie einen oder mehrere Datenbank Clients Beide k nnen physikalisch auf dem selben Computer laufen Der Serve
65. wenn der Text in doppelten Anf hrungsstrichen steht echo Hallo hostname echo Hallo hostname Das erste Beispiel funktioniert w hrend das zweite Beispiel nicht funktioniert Es gibt keine direkte M glichkeit die Eingabe eines Befehls in eine Variable umzuleiten Doch man kann sich mit einem echo Befehl behelfen Hilfe man tar echo Hilfe more Die Manual Page vom Programm tar wird in die Variable Hilfe geschrieben Mittels echo Befehl geben Sie die Variable aus und leiten den Text in den more Befehl um Seite 129 SMS Anwendungen 4 9 8 Mehrere Befehle in einer Zeile Sie k nnen mehrere Befehle in eine Zeile schreiben Je nach Schreibweise werden diese dann unterschiedlich ausgef hrt echo Hallo echo Rita echo viel Freude Diese drei echo Befehle werden der Reihe nach ausgef hrt Sie erhalten also die Bildschirmausgabe Hallo Rita viel Freude Ein anderes Beispiel rm tmp test txt amp amp echo Die Datei wurde gel scht Zuerst wird versucht die Datei tmp test txt zu l schen Nur wenn das erfolgreich war erscheint die Erfolgsmeldung Der Echo Befehl wird also bedingt ausgef hrt Noch ein Beispiel rm tmp test txt echo Die Datei konnte nicht gel scht werden Zuerst wird versucht die Datei tmp test txt zu l schen Wenn das nicht erfolgreich war erscheint die Fehlermeldung An dieser Stelle m chte ich erkl ren was genau erfolgreich und nicht erfolgreich ist Jede
66. werde gleich eigene Versionen davon installieren Mit den Befehlen pkginfo grep apache und pkginfo grep mysql k nnen Sie das kontrollieren Zum Entfernen geben Sie bitte den Befehl pkgrm Paketname ein ffnen Sie die Datei etc profile in einem Editor und f gen Sie folgende Zeilen an das Dateiende an CC gcc PATH usr local bin usr local sbin usr ccs bin usr local mysql bin PATH MANPATH usr local man MANPATH LD LIBRARY PATH usr local lib LD_LIBRARY PATH export CC PATH MANPATH LD_ LIBRARY PATH Loggen Sie sich aus und wieder ein um die nderungen wirksam werden zu lassen Seite 50 SMS Anwendungen 4 2 1 2 Packages Installieren Downloaden Sie die folgenden Pakete passend zu Ihrer Solaris Version von http www sunfreeware com e gcc der GNU C und C Compiler make Zubeh r f r gcc e autoconf Zubeh r f r gcc automake Zubeh r f r gcc tar Packer Entpacker gzip Packer Entpacker e sed Script Interpreter f r Texte e fetchmail Mails abrufen e procmail Mails verarbeiten mysql Datenbank Server e Libraries f r diese Programme e db e expat gdbm e libxml2 e ssl Anleitung zur Installation finden Sie auf dieser Webseite unter dem Link Downloading Installing Zusammengefasst Downloaden Sie die obigen Pakete alle in ein leeres Verzeichnis Bis auf gzip selbst sind alle Pakete mit gzip komprimiert und m ssen vor der Installation dekomprimiert werden pk
67. wichtig vielleicht sogar wichtiger als die Kosten Bei der Software haben Sie leider nicht viele Wahlm glichkeiten Solange Sie sich auf die in den vorangegangenen Kapiteln vorgestellten Programme st tzen brauchen Sie jedoch keine b sen berraschungen bef rchten Die Programme haben alle eine lange Entwicklungszeit hinter sich und laufen daher zuverl ssig Und sollten Sie dennoch einen Fehler entdecken stehen Ihnen die Autoren der Programme meist gerne mit Rat und Tat zur Seite Im Gegensatz zur Software haben Sie auf die Hardware einen gro en Einfluss F r SMS Anwendungen spielt die Geschwindigkeit eines Server kaum eine Rolle prinzipiell k nnen Sie jeden beliebigen PC oder SUN Rechner verwenden Sie k nnen also sehr frei den f r Sie richtigen Rechner ausw hlen SUN Computer sind generell sehr zuverl ssig aber sie laufen nur mit dem Betriebssystem Solaris Wenn Sie gerne einen SUN Computer verwenden m chten dann m ssen Sie unbedingt auch einen geschulten Solaris Administrator haben und Sie m ssen pr fen ob alle gew nschten Programme auf f r Solaris erh ltlich sind Wenn diese Bedingungen nicht sicher erf llt sind dann k nnen Sie keinen SUN Server f r Ihre SMS Anwendung benutzen F r PC s k nnen Sie auf jeden Fall praktisch jedes Programm bekommen entweder f r Windows oder f r Linux Hier geht es erst einmal um die Auswahl der Hardware Auf dem Markt werden sowohl hochwertige PC s als auch Billigmodelle angeboten Der
68. z hlt sie die Anzahl der Vorkommnisse Die dritte Aktion gilt nur f r die Zeilen in denen Hallo steht Anstatt sie erneut auszugeben gibt diese Aktion einfach nur Hallo ebenfalls aus und z hlt die Vorkommnisse Die vierte Aktion wird nur ganz zum Schluss ausgef hrt wenn die Textdatei bis zum Ende eingelesen wurde Daf r sorgt die Bedingung END Zum Schluss werden die beiden Z hlergebnisse ausgegeben Wenn Sie Aktionen vor der allerersten Textzeile ausf hren m chten verwenden Sie die Bedingung BEGIN Erstellen Sie nun eine Textdatei mit mehreren Zeilen Wenigstens eine soll das Wort Hallo beinhalten F hren Sie dann das Script aus um es zu testen awk f test1 awk Textdatei Sie k nnen auch mehrere Textdateien nacheinander abarbeiten In diesem Fall wird die Bedingung END nur einmal ganz am Ende wirksam Auch die Bedingung BEGIN w rde nur einmal wirksam werden A 10 4 Feldtrenner Awk trennt Textzeilen normalerweise anhand von Leerzeichen Mehrfache Leerzeichen werden als eins zusammengefasst Tabulatoren sind mit Leerzeichen identisch Beispiel Sie haben die Textdatei test1 txt mit diesem Inhalt Stefan Frings 12 10 74 Programmiert SMS Server Tools Bill Gates 23 05 52 War der reichste Mann der Welt Golden Gate 01 24 65 Ist eine Br cke Angenommen Sie wollen nur die Namen haben dann schreiben Sie dieses Script print 1 2 Awk wird jede Zeile einlesen und in W rter zerlegen Der Print Befehl gibt dann die er
69. 0 Wenn Sie noch mehr serielle Ports an Ihrem SUN Rechner haben tragen Sie auch diese entsprechend ein Der Name vor dem Doppelpunkt ist frei erfunden Dahinter kommt der Device Name und die Bitrate Nachdem Sie die Konfigurationsdatei angepasst haben k nnen Sie das Programm durch den Befehl tip porta starten um den ersten seriellen Port des Rechners zu ffnen Sie beenden tip durch Eingabe der Zeichenfolge Seite 36 SMS Anwendungen 4 1 2 GSM Modembefehle F r SMS Anwendungen brauchen Sie keine Verbindung zur SMSC aufzubauen GSM Modems senden und empfangen Kurzmitteilungen durch den Signalisierungskanal der nach dem Einbuchen ins Netz st ndig verf gbar ist Sie werden also vergeblich nach ATD Befehlen suchen Allgemeine Regeln zu Modembefehlen Alle Modembefehle beginnen mit AT Nach Eingabe des Befehls m ssen Sie die Enter Taste dr cken Man kann mehrere Befehle auf einmal in eine einzige Zeile schreiben dann schreibt man das AT aber nur einmal an den Beginn der Zeile Zwischen AT und zwischen mehreren Befehlen d rfen Leerzeichen eingef gt werden Wenn Sie ein gebrauchtes Modem benutzen sorgen Sie mit dem Befehl AT amp F amp W daf r dass das Modem beim Reset auf Werkseinstellungen steht Den Befehl brauchen Sie nur ein einziges mal eingeben F r SMS Anwendungen brauchen Sie nur einen kleinen Bruchteil aller Modembefehle und zwar folgende ATZ f hrt einen Reset durch Das Modem initialisiert sich so
70. 0 LATIN SMALL LETTER N n 110 Ox6F 111 LATIN SMALL LETTER O o 111 0x70 112 LATIN SMALL LETTER P p 112 0x71 113 LATIN SMALL LETTER Q q 113 0x72 114 LATIN SMALL LETTER R r 114 0x73 115 LATIN SMALL LETTER S s 115 0x74 116 LATIN SMALL LETTER T t 116 0x75 117 LATIN SMALL LETTER U u 117 0x76 118 LATIN SMALL LETTER V v 118 0x77 119 LATIN SMALL LETTER W w 119 0x78 120 LATIN SMALL LETTER X x 120 0x79 121 LATIN SMALL LETTER Y y 121 Ox7A 122 LATIN SMALL LETTER Z z 122 0x7B 123 LATIN SMALL LETTER A WITH DIAERESIS 228 0x7C 124 LATIN SMALL LETTER O WITH DIAERESIS 246 0x7D 125 LATIN SMALL LETTER N WITH TILDE 241 0x7E 126 LATIN SMALL LETTER U WITH DIAERESIS 252 0x7F 127 LATIN SMALL LETTER A WITH GRAVE 224 Seite 47 SMS Anwendungen 4 1 8 Praktische Beispiele Zum Abschluss m chte ich Ihnen beispielhaft zeigen wie man sich selbst eine SMS schickt Dies k nnen sie sowohl mit einem GSM Modem als auch mit einem Mobiltelefon nachvollziehen Ich verwende f r das Beispiel ein Sharp GX 10 Mobiltelefon mit Infrarotschnittstelle unter Linux Die Treiber f r die Infrarotschnittstelle habe ich bereits geladen und sichergestellt dass der Computer das Telefon richtig erkannt hat Nun starte ich ein beliebiges Terminalprogramm und gebe die Befehle ein die Sie in den vorherigen Kapiteln kennengelernt haben atz OK at cpin CPIN READY OK at csq CSQ 25 0 OK at creg CREG 0 1 OK Bis hierhin w
71. 1 22 26 23 Received 00 02 21 22 26 29 Alphabet 1S08859 15 Subject GSM1 This is the Text that I sent with my mobile phone Neue Programmversionen erzeugen eventuell einen gr sseren Vorspann mit weiteren Informationen Bedenken Sie dies wenn Sie Programme schreiben die den Vorspann auslesen Die From Zeile gibt an wer die Nachricht gesendet hat Dies muss nicht unbedingt eine Telefonnummer sein es gibt auch Nachrichten mit einem Absendernamen anstatt einer Telefonnummer Handies und GSM Modems senden Nachrichten immer mit numerischer Absenderkennung Die From_SMSC Zeile sagt Ihnen welche SMS Zentrale Ihnen diese Nachricht zugestellt hat Wie n tzlich Sie diese Information finden k nnen Sie sich selbst ausdenken Als n chstes folgen zwei Zeitstempel Sent enth lt den Zeitpunkt wann die Nachricht gesendet wurde Dieses Feld wird von der SMS Zentrale ausgef llt Verlassen Sie sich nicht allzusehr auf diesen Zeitstempel denn die Uhr der SMS Zentrale k nnte falsch eingstellt sein Hinter Received schreiben die SMS Server Tools wann Ihr Computer diese Nachricht empfangen hat Die Genauigkeit dieser Angabe h ngt also von der Uhr Ihres Computers ab Die Subject Zeile benennt das Modem welches die Nachricht empfangen hat Je nach Anwendung kann diese Information v llig unwichtig sein oder elementar wichtig Seite 184 SMS Anwendungen 5 6 5 Empfangene Bin rdateien Empfangene Bin rdateien sehen prinzi
72. 10 Fetchmail ssmtp und ncftp Fetchmail und ssmtp sind zwei kleine eMail Programme die in jeder Linux Distribution enthalten sein sollten Mit fetchmail rufen Sie eMails von externen Mailservern ab z B mit POP3 Protokoll Mit ssmtp versenden sie eMails ber externe Mailserver mit smtp Protokoll ssmtp simuliert das unter Unix bliche sendmail indem es alle eMails an einen anderen Mailserver weiter leitet Diese beiden Programme k nnen n tzlich sein wenn Sie keinen eigenen Mailserver auf Ihren Computern betreiben Sie erm glichen den eMail Transfer an der Kommandozeile oder innerhalb von Shell Scripten bzw Batch Dateien Ncftp ist ein FTP Client der besonders gut f r Shell Scripte bzw Batch Dateien geeignet ist Im Gegensatz zum normalen FTP Client ist dieser nicht interaktiv sondern Sie bestimmen anhand von Argumenten welche Dateien sie up oder downloaden wollen Seite 27 SMS Anwendungen 3 Systemdesign In diesem Kapitel beschreibe ich wichtige Aspekte f r das Design einer kommerziellen SMS Anwendung Nachdem Sie es gelesen haben werden Sie alle n tigen und sinnvollen Komponenten zusammenstellen k nnen Sie werden ausserdem wissen auf welche Details man bereits beim Aufbau eines entsprechenden Systems achten sollte Das Kapitel unterst tzt Sie bei der Auswahl der Hardware nach den Anforderungen h chster Zuverl ssigkeit 3 1 Stabilit t F r kommerzielle Anwendungen ist die Stabilit t eines Systems sehr
73. 6 8 1 README php 4 2 8 1 README bzip2 1 8 2 README libxm12 2 4 23 README postgresql 7 3 1 README crypt README login README procmail 3 22 README cur1 7 1M 2 1 README mc 4 5 55 1 README readline 4 3 README cygrunsru README mktemp 1 4 README rxut 2 7 9 README cygutils 1 1 3 README ncftp 3 1 4 README ssmtp 2 38 7 README cygwin doc 1 3 1 README ncurses 5 2 README terminfo 5 2 README fetchmail 6 2 8 README openss1 8 9 7 README zlib 1 1 4 README gdbm 1 8 8 README pcre 3 7 README De Dann zeigt der Befehl Is diese auch alle an In der MS Dos Eingabeaufforderung h tten Sie dir eingeben m ssen weil dort ein Stern als Jokerzeichen f r alles ausser den letzten Punkt gilt Unter Unix ist der Stern auch ein Joker f r alle Zeichen Punkte stellen keine Ausnahme dar Gleiches gilt auch f r das Fragezeichen win ES cd usr doc Cygwin 5 ls 1 README binutils 28921117 1 README qyuile 1 6 8 1 README php 4 2 8 1 README curl 7 18 2 1 README mc 4 5 55 1 README postgresql 3 1 README ceygwin doc 1 3 1 README perl 5 6 1 README Sie k nnen Jokerzeichen beliebig kombinieren z B so Seite 70 SMS Anwendungen cd usr doc Cygwin ls READ apache 1 3 24 5 README perl 5 6 1 README binutils 28921117 1 README gt php 4 2 8 1 README bzip2 1 8 2 README i postgresql 7 3 1 README crypt README login README procmail 3 22 README curl 7 18 2 1 README mc 4 5 55 1 README readline 4 3 README cygrunsru README
74. B so 192 168 1 12 mail isis de mailhost Kopieren Sie etc mail subsidiary cf nach etc mail sendmail cf Testen Sie den Versand von eMail mit den Befehl lusr lib sendmail v receiver mail isis de From sender mail isis de Hallo lt Strg D gt Setzen Sie in dem Befehl sinnvolle eMail Adressen ein Die eMail sollte den Empf nger erreichen Seite 79 SMS Anwendungen 4 5 2 ssmtp Konfigurieren Dieses Kapitel betrifft nur Windows Systeme ssmtp simuliert das Programm sendmail welches unter Unix das Standardprogramm zum Senden von eMails ist Im Installationsprogramm von CygWin gibt es einen kleinen Fehler Es fehlt ein Link der es erm glicht ssmtp wie das klassische sendmail aufzurufen F gen Sie diesen Link manuell hinzu cd usr lib In s usr sbin ssmtp exe sendmail Legen Sie sich die Konfigurationsdatei etc ssmtp ssmtp conf an mit folgendem Inhalt mailhub mail isis de 25 hostname meinpc local FromLineOverride YES Mailhub ist der Name und Portnummer Ihres eMail Servers z B Microsoft Exchange Die Portnummer ist eigentlich immer 25 Hostname ist der Name des PC s Diese Zeile ist in der Regel nicht n tig und kann daher wie oben gezeigt auskommentiert werden Die letzte Zeile legt fest dass die From Zeile in der eMail unver ndert gesendet wird Testen Sie den Versand von eMail mit den Befehl lusr lib sendmail v receiver mail isis de From sender mail isis de Hallo lt Strg D gt Setzen Sie i
75. Daten speichern wollen Das Setup Programm richtet f r die ersten Zugriffe auch einen root Account an PHP und Apache http www php net downloads php http httpd apache org PHP ist eine Programmiersprache f r Dynamische Webseiten Apache ist ein Webserver Installieren Sie diese beiden Programme wenn Sie Webseiten anbieten wollen Seite 58 SMS Anwendungen 4 2 2 2 CygWin Installieren CygWin ben tigen Sie auf allen Servern auf denen Sie die Beispielprogramme dieses Buches anwenden m chten Downloaden Sie die setup exe von http www cygwin com Starten Sie das Setup Programm und w hlen Sie die Option Install from Internet W hlen Sie als Zielverzeichnis c cygwin Lassen Sie alle anderen Optionen unver ndert bis Sie zur Programmauswahl gelangen Cygwin Setup Select Packages Select Packages Select packages to install Okeep OPrev OCur OEmp Category Category Current Package B All amp Default Admin amp Default Archive amp Default Audio amp Default Base amp Default Database amp Default Devel amp Install Doc amp Default Editors amp Default Hide obsolete and administrative packages Hier sind zahlreiche Programmpakete in Kategorien zusammengefasst Sie k nnen f r jedes Programm durch Anklicken zwischen folgenden Optionen w hlen Skip Nicht installieren e Install Versions Nr erscheint Remove entfernen e Re Install erneut installieren W hlen
76. Dienst jetzt abbonieren und stornieren Was jetzt noch fehlt ist ein Cronjob der t glich die angemeldeten Termine abarbeitet und Kurzmitteilungen sendet Schreiben Sie sich dazu das Script usr local bin eisprung sh bin sh liste tmp eisprung liste heute date Y m d SQL ARGS h localhost u root ppassword D smsd N B e mysql SQL ARGS select typ handynummer from eisprung where datum heute gt liste while read zeile do typ echo zeile cut f1 d Ta nummer echo zeile cut f2 d case E B esac echo done lt typ in sendsms nummer Sie haben einen Eisprung sendsms nummer Ihre Blutung wird heute beginnen Styp nummer Sliste mysql SQL ARGS delete from eisprung where datum lt S heute Die SQL Parameter in SQL_ARGS m ssen Sie an Ihren SQL Server anpassen Als Cronjob eingerichtet sendet es t glich alle SMS gem ss der Eisprung Tabelle und l scht alte Eintr ge in dieser Tabelle Der Cronjob k nnte so aussehen 3006 Bzw unter Windows 306 usr local bin eisprung sh c cygwin bin bash c usr local bin eisprung sh Seite 224 SMS Anwendungen 7 6 Klingelt ne Logos und Spr che Einer der beliebtesten SMS Dienste sind zweifellos die Klingelt ne und Logos Daher m chte ich Ihnen zeigen wie sie einen solchen Dienst realisieren k nnen Zun chst brauchen Sie Klingelt ne Logos Spr che oder welche Daten Sie au
77. EE 20 2 5 1 Micros ftWindoWS n 0s rer tyres tAds Nasino araa reeg ALEE Taaa VA aE UYA AYE rennen are rer 20 2 SUN Oa Se e A a ee 21 DOI A A A a 22 DOPAMINA IS Dio 23 DONADAS A AAA DAA AA 23 26 25 NR aeaaea eena A a aE her tree 24 2 6 3 Apache Webserver isis a ds aaa a eaa aa i a ANEA 24 26 4 War FIP Damo uni RR a ae ee 24 2 6 5 MySQL BE ETna A A E E E RAEE E T 25 2 6 6 PHP Programmiersprache 2440n4400nnnnnnnnanonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnannn 25 2 6 7 nHCron Lite a iio 25 2 6 8 9MS Server TS A oa 26 2 0 9 EditPad Lit A EE EEEa aa AT Aaaa Te 26 2 06 10 Fe6tchmall SSM D und neitp 422er ihn 27 ISS temdESION a Are en re Senne de nee Heer een LIE e e Eaa AE AEEA RON EHER 28 Silo tablatura Beni HAN RR Rahel sah ERS ds AS aueh 28 3 2 Mechanischer Aufbau inarun en ara Biss 29 3 35StOMVErSOrgUNng inneres O O 30 3 4 Batensicherheit e Nee a ee ea rasen Lernens RE Gerede atadas 31 3 5 Redundanz Earl Rn Rei a a A A a a a a AR TI ER 32 A aa a AEE a AO 33 Seite 2 SMS Anwendungen 3 T Ko kre tes Bei piel yste M dunenie A iia 34 4 B sis KnowHoW rn A era a ker etder rer 36 4 1 SMS Befehle f r GSM Modems ii di A AAA sehn EEE NEETA E ehren 36 4 1 1 Terminalprogramm st rlen s u2 2 en a ah Erle hier ea 36 4 1 2 65M Modembetfenle consciencia a h ead Ae ia aaae aa AEn aE naa eh aan Dre Adrere Neah PAKTE N
78. ER L L 76 0x4D 77 LATIN CAPITAL LETTER M M 77 0x4E 78 LATIN CAPITAL LETTER N N 78 0x4F 79 LATIN CAPITAL LETTER O O 79 0x50 80 LATIN CAPITAL LETTER P P 80 0x51 81 LATIN CAPITAL LETTER Q Q 81 Seite 46 SMS Anwendungen 0x52 82 LATIN CAPITAL LETTER R R 82 0x53 83 LATIN CAPITAL LETTER S S 83 0x54 84 LATIN CAPITAL LETTER T m 84 0x55 85 LATIN CAPITAL LETTER U U 85 0x56 86 LATIN CAPITAL LETTER V V 86 0x57 87 LATIN CAPITAL LETTER W WwW 87 0x58 88 LATIN CAPITAL LETTER X X 88 0x59 89 LATIN CAPITAL LETTER Y Y 89 0x5A 90 LATIN CAPITAL LETTER Z Z 90 0x5B 91 LATIN CAPITAL LETTER A WITH DIAERESIS 196 0x5C 92 LATIN CAPITAL LETTER O WITH DIAERESIS 214 0x5D 93 LATIN CAPITAL LETTER N WITH TILDE 209 Ox5E 94 LATIN CAPITAL LETTER U WITH DIAERESIS 220 Ox5F 95 SECTION SIGN 167 0x60 96 INVERTED QUESTION MARK 191 0x61 97 LATIN SMALL LETTER A a 97 0x62 98 LATIN SMALL LETTER B b 98 0x63 99 LATIN SMALL LETTER C c 99 0x64 100 LATIN SMALL LETTER D d 100 0x65 101 LATIN SMALL LETTER E e 101 0x66 102 LATIN SMALL LETTER F f 102 0x67 103 LATIN SMALL LETTER G g 103 0x68 104 LATIN SMALL LETTER H h 104 0x69 105 LATIN SMALL LETTER i 105 Ox6A 106 LATIN SMALL LETTER J j 106 0x6B 107 LATIN SMALL LETTER K k 107 0x6C 108 LATIN SMALL LETTER L l 108 0x6D 109 LATIN SMALL LETTER M m 109 Ox6E 11
79. Ekel iM RI lellehtibekallaleanilanlehih Ben 80 4 5 3 eMa ll senden O DaB NANA 81 4 5 4 eMa il empfange Ni raea aeaea aaa aKes eaaa Es aiar aiaa rara A SaN Aaaa ME VAa oia SEERE 82 A ERA ER AE ON 83 ADO FOFMA AN WENN Ad AAA AE lt 84 ADAM ai 85 4 6 1 FTP Client benutzen A A A a rA T Ea a a TE 85 4 6 2 Automatische FTP DOWwNOadS ranei peaa a es ame nero aa pida Eaa AENA A o Eaa e Aara RER engen 87 4 6 3 Automatische FTP Uplo ds 2 2 0 4 222 ri nie a a a aaa e A aaa a aa a a E E 88 ATM SOL Anwenden ren ass 89 4 7 1 DasFunktionsprinzip von MYSOL u en annsn icons craneo cdta ARA AEAU NARA A EEA recae 89 E RT EPA IDO PON ii A A AAA A A AAA a dd 90 4 7 3 Optionen zu Datentypen u 240u4nnsonnnnnnnnnnnnannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnsnannnnnnnnnnnnnnnnnnsnnnnnnnnnnnnnnnnnnnnnnnnnn 91 4 7 4 Eine Datenbank mit zwei Tabellen anlegen 22004s2400nnna0nnnnnnnannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 92 47 5 Table MED FA 2 25 32 28er I Re A A a I A EAN 93 4 7 6 Tabellen Auslesen 2 2 manner ahnen AT E AAA ADA EA A iS 94 4 7 7 Tabellen Ver NOOO 95 47 8 NULL Werten ana al ld O a A id did 96 4 7 9 WVeitere Schl sselw rterf r Select iii ii ar ann Din 97 4 7 10 Spalten ndern nen en N eier 98 4 74 11 Datem EOSChen A ne engere A OT A 99 4 7 12 SOL Abfragen In Shell Scripten iiiiii 3222er Bin RSS It se 100 47 182 D
80. FAILED Dateiname lusr local bin mysmsd RECEIVED Dateiname lusr local bin mysmsd FAILED Dateiname Der Dateiname ist der Name der betroffenen SMS Datei bin sh SOL_HOST localhost SOL_USER root SQL PAssWORD SQL DATABASE smsd SQL TABLE sms_log DATE date SY m d H M 9S FROM formail zx From lt 2 sed s g TO formail zx To lt 2 SUBJECT formail zx Subject lt 2 SENT formail zx Sent lt 2 if SSQOL_PAsswoRD then SOL ARGS p SQL PAssWORD else SOL ARGS EE S L_ARGS h SQL HOST u SQL USER SQL_ARGS D S L_ DATABASE s e if S1 FAILED 1 SENT then mysql SQL_ARGS insert into SQL TABLE type sent sender receiver msgid values SI SDATE SEROM ASTON A S3X a elif 1 RECEIVED then mysql SQL_ARGS insert into SQL TABLE type sent received sender receiver values RECEIVED SSENT DATE SFROM SSUBJECT 7 elif 1 REPORT then DISCHARGE sed e 1 7d lt 2 formail zx Discharge timestamp MSGID sed e 1 7d lt 2 formail zx Message id STATUS sed e 1 7d lt 2 formail zx Status cut f1 d ID mysql SOL ARGS select id from SQL TABLE where receiver FROM and type SENT and msgid SMSGID order by id desc limit 1 mysql SQL_ARGS update SQL_TABLE set received DISCHARGE status STATUS where id SID fi DATE date
81. Fehlercode der Datei bertragung O kein Fehler Verlassen Sie sich nicht darauf dass der Webbrowser die maximale Dateigr sse korrekt ber cksichtigt Fehlerhafte Browser k nnten auch zu gro e Dateien abliefern ihr Programm muss damit klarkommen und wenigstens eine ordentliche Fehlermeldung anzeigen Ein Beispiel wie Sie upgeloadete Dateien empfangen k nnen test6 php Seite 117 SMS Anwendungen lt html gt lt body gt lt php if is_uploaded_file _FILES userfile tmp_name copy _FILES userfile tmp_name dokumente upgeloadete jpg print Danke die Datei wurde gespeichert else print Sie haben die Datei nicht wirklich gesendet 2 gt lt body gt lt html gt Die Funktion is_uploaded_file pr ft ob die Datei auch wirklich gesendet wurde Benutzen Sie diese Kontrolle immer um Hackerangriffe zu verhindern Ohne diese Kontrolle k nnte ein Hacker Ihnen gef lschte Dateinamen senden die Ihr Programm in die Irre f hren Die Funktion copy kopiert die tempor re Datei in eine endg ltige Datei um An dieser Stelle k nnten Sie nat rlich auch andere Aktionen mit der Datei durchf hren Wenn Sie die Datei sp ter noch brauchen m ssen Sie sie auf jeden Fall umkopieren denn der Webserver l scht die tempor re Datei unmittelbar nach Beendigung Ihres PHP Programmes selbstst ndig Wie Sie Cookies anwenden k nnen Sie gerne in dem originalen PHP Handbuch nachlesen Ich rat
82. Firewall ist ebenfalls ein Dell Poweredge mit Linux und einer zus tzlichen 4 Fach Netzwerkkarte Zur Datensicherheit sind alle drei Rechner mit zwei gespiegelten Festplatten und einem Bandlaufwerk ausgestattet Der Fileserver ist ein SUN V880 mit Solaris Auch hier ist eine zus tzliche Netzwerkkarte n tig Die Daten werden auf zwei gespiegelten Festplatten gespeichert und mit einem Bandlaufwerk gesichert Der Fileserver dient zugleich auch als SQL Server zum Aufbau dynamischer Webseiten und zum Speichern von Abrechnungsdaten Der Router f hrt zum Internet Ihr Internet Anbieter legt fest welchen Router Sie genau verwenden werden Der Systemadministrator kann sich von seiner Workstation aus auf alle Server einloggen Daher braucht man an den Servern keine eigenen Monitore und Tastaturen nachdem die Netzwerkkarten und Betriebssysteme installiert sind Die Firewall sch tzt alle Server vor unbefugtem Zugriff aus dem Internet Aus Redundanzgr nden sind zwei SMS Server vorhanden die Ihre Warteschlangen sowie Statistiken auf dem gemeinsam genutzten Fileserver speichern Normalerweise teilen sich die beiden SMS Server die Last Wenn einer ausf llt werden die SMS entsprechend langsamer durch den verbliebenen Server gesendet Beide SMS Server haben jeweils mindestens drei Modems jeweils eins f r D1 eins f r D2 und eins f r alle anderen Netze Durch diese Aufteilung k nnen die SMS kosteng nstiger gesendet werden Der Fileserver stellt
83. GTH Hier wird dann genau die gefundene Zahl ausgegeben Der match Befehl hat die Position und die L nge in den Variablen RSTART und RLENGTH gespeichert so dass wir mit dem Befehl substr den entsprechenden Teil aus der ganzen Textzeile extrahieren k nnen Seite 161 SMS Anwendungen 5 Die SMS Server Tools Die SMS Server Tools sind ein Programmpaket zum Senden und Empfangen von SMS Wie der Name bereits sagt dient das Programmpaket weniger als buntes User Interface sondern es ist eher zum Aufbau von Servern gedacht die automatisch funktionieren Das Programmpaket wird von dem Autor dieses Buches entwickelt Er bekommt dabei Unterst tzung von zahlreichen Hobbyprogrammierern und kommerziellen Anwendern Es wird vergleichsweise schnell weiter entwickelt Wenn Sie an der jeweils neuesten Version interessiert sind sollten Sie meine Homepage besuchen http www meinemullemaus de Neue Versionen k ndige ich immer unter http www freshmeat net an Dort k nnen Sie ihre eMail Adresse in eine Verteiler Liste eintragen Sie erhalten dann bei der Ver ffentlichung jeder neuen Version eine eMail Ich eMail Adresse kann ich selbst nicht einsehen sie wird von den Betreibern von www freshmeat net vertraulich behandelt Ich aknn lediglich nachschauen wieviele Eintr ge in der Liste stehen Das Programm ist bereits seit einiger Zeit in Debian Linux enthalten Dieses Kapitel ist im Grunde eine bersetzung der englischen Original
84. MARY KEY NOT NULL betrag FLOAT stand TIMESTAMP Sie k nnen nun Adressen speichern sowie Kontost nde Nat rlich k nnten Sie auch alles in einer einzigen Tabelle speichern aber das w re ja langweilig Hier geht es darum zu sehen wie man mehrere Tabellen in einer Datenbank anlegt und zusammen benutzt Um sich sp ter nochmal anzusehen wie die Spalten der Tabellen festgelegt sind geben Sie diese Befehle ein show databases use adressen show tables describe anschriften describe kontostand Sie k nnen nun beginnen diese Tabellen mit Adressen und Kontost nden zu f llen Der Zeitstempel beim Kontostand wird bei jeder nderung automatisch gesetzt Die ID Nummern der Adressen werden automatisch fortlaufend vergeben w hrend Sie die ID Nummern der Kontost nde selbst manuell vergeben Das n chste Kapitel zeigt Ihnen wie das geht Seite 92 SMS Anwendungen 4 7 5 Tabellen mit Daten F llen Geben Sie eine erste Adresse in die Tabelle ein insert into anschriften set name Mustermann vorname Markus strasse Bachstrasse 13 plz 11111 ort Irgendwo Die Reihenfolge der Spalten k nnen sie ruhig vertauschen sie muss nicht mit der Tabellen Definition bereinstimmen Sie d rfen auch einzelne Spalten auslassen z B insert into anschriften set vorname Michaela name Musterfrau Die Zeilenumbr che w hrend der Befehlseingabe dienen nur dazu die Darstellung bersichtlicher zu gesta
85. R E WITH GRAVE 232 0x05 5 LATIN SMALL LETTER E WITH ACUTE 233 0x06 6 LATIN SMALL LETTER U WITH GRAVE 249 0x07 7 LATIN SMALL LETTER WITH GRAVE 1 236 0x08 8 LATIN SMALL LETTER O WITH GRAVE 242 0x09 9 LATIN CAPITAL LETTER C WITH CEDILLA 6 199 0x0A 10 LINE FEED 10 0x0B 11 LATIN CAPITAL LETTER O WITH STROKE 216 0x0C 12 LATIN SMALL LETTER O WITH STROKE 248 Ox0D 13 CARRIAGE RETURN 13 Ox0E 14 LATIN CAPITAL LETTER A WITH RING ABOVE 197 OxOF 15 LATIN SMALL LETTER A WITH RING ABOVE 229 0x10 16 GREEK CAPITAL LETTER DELTA A 0x11 17 LOW LINE E 95 0x12 18 GREEK CAPITAL LETTER PHI 0 0x13 19 GREEK CAPITAL LETTER GAMMA r 0x14 20 GREEK CAPITAL LETTER LAMBDA A 0x15 21 GREEK CAPITAL LETTER OMEGA Q 0x16 22 GREEK CAPITAL LETTER PI n 0x17 23 GREEK CAPITAL LETTER PSI y 0x18 24 GREEK CAPITAL LETTER SIGMA 2 0x19 25 GREEK CAPITAL LETTER THETA 0x1A 26 GREEK CAPITAL LETTER XI 0x1B 27 ESCAPE TO EXTENSION TABLE 0x1BOA 27 10 FORM FEED 12 0x1B14 27 20 CIRCUMFLEX ACCENT a 94 0x1B28 27 40 LEFT CURLY BRACKET 123 0x1B29 27 41 RIGHT CURLY BRACKET 125 0x1B2F 27 47 REVERSE SOLIDUS BACKSLASH 92 0x1B3C 27 60 LEFT SQUARE BRACKET 91 0x1B3D 27 61 TILDE 126 0x1B3E 27 62 RIGHT SQUARE BRACKET 93 0x1B40 27 64 VERTICAL BAR 124 0x1B65 27 101 EURO SIGN 164 0x1C 28 LATIN CAPITAL LETTER AE 198 0x1D 29 LATIN SMALL LETTER AE 230 0x1E 30 LATIN SMALL LETTER SHARP S German ss 223 0x1F 31 LATIN CAPITAL LETTER E WITH ACUTE E 201
86. RSEN TER 143 LS O T E E T 144 PA O NN 145 4 9 15 5 Regul re Ausdr ck as oiui datarie oe Tianara RR RAR 146 ADO Leerzeichen wegschneidens ii er un Ein 147 4 10 AWK Programmisringi iia 148 4 10 1 Wie man awk Staten a ein Be Inh ann aa rea Ta da A DA DA ENE Kaa aaie Ae 148 4 10 2Erste awk Beispiele a es nn ad deante 148 4 10 3 Grunds tzliche Syntax von awk Scripten 0uss40unsnssnnsnnnsnnnnnnnnnnnnnnonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnennnnnnnnnnsnnnnnnannnnnnnnnnn nn 149 ATOM Me iii A a a aata a a a de 149 4 10 5 Eingebaute Variable dia 151 SMS Anwendungen 4 10 6 Variablen an der Kommandozeile bergeben ur2240ss2nssnsnnnnnnnonnnnnnnnnnnnnnnnnnnnnnnnnennnnnnnnnnnnnnonnnnnnnnnnnnnnnn nen 151 ARO OA Ni A NEAR BEE HERE EINER 152 410 8 Bedingungen Mita cial eier AA AAA A ac 153 4109 COCO MIME A A A ae ig Here hingen 154 SA OE 154 4 10 11 Break Und CON MU ini a a a Serd A ae AR Shih 155 4 10 12 NS ANO 155 4 10 13 Sonderzeichen in Pri iaa 155 4 10 14 OUNAE a dd 156 4 10 15 AMAS A A alien abi Bananen 157 4 10 16 Eingeba te Funktionen 4 32 2 3 2 22 2 io 158 4 10 17 Eigene FUNKtONON LI A A A E a ACA 159 4 10 18 Awk Beispiel f r SMS Anwendungen 2444224044nn0nnnnnnnnnennnnnnnnnnonnnnnnnnnnnnnnnennnnsnnnnnnnnnnennnnnnnnnnnnnnnnnnnnnnnanan sn 160 5 DiE SMS Server Tools sa A A A dd Hals 162 51 berblick eng aaa 162 5 2 Installation und Konfiguration iaa
87. SMS Anwendungen SMS Anwendungen Stefan Frings Dezember 2005 Januar 2011 Ein Buch ber den Aufbau kommerzieller SMS Anwendungen im Stil eines Lehrganges Vorstellung geeigneter Hardware Vorstellung geeigneter Betriebssysteme und Software Anwendung von GSM Modems zum zum Senden und Empfangen Einsteiger Anleitung und Anwendungsbeispiele f r Shell Scripte PHP Awk Apache Webserver MySQL Email Server Tips zur Verbesserung und Erweiterung der SMS Server Tools Seite 1 SMS Anwendungen Inhaltsverzeichnis 1 Einleit ng aii 8 df Uber dieses BUCEAR AD A a 8 OO 9 13 Wasist SMS HB A A te as 9 CIS MMS 22ER sie Ri RR A AE EEE a DE EE a Ee iE 10 2 Hardware UNA O Wa iii ia A A NA aA Ei Pe ENEAS E ASE ADA AAA A 11 SN E OO OR 11 A A AA E EEE 11 2 3 Serielle SEO iii A A A sh sich iM DISS dd ine BSH NE 12 2 3 1 So funktioniert eine serielle Schnittstelle ur uurs0nsunnnensnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnennnnnnnnnnnennnnnnnnnnnennnnnnnnnnnenn 12 2 3 2 Anschlussbeleg ngen eric Bine in A AAA dia 13 PAS AS Ports erweitern A O NT 15 2 34 DIgEtherlte ooo A A el sia 15 2 4 GSM Modemns UNd Mobilteletone 00ii asia 16 24 1 Siemens GSM Modems een Ries AA O AAA AA IN 16 2442 Falcom GSM Modem Siiri masa em nennt A iaaa era rA EEEa TAEDA i ha AEO eo EAL l nder danna IE dan EA Ends 16 2 4 3 M biltelefone nanii a A A T 18 2 44 GSM ntennen Eos 19 PRP e RESETA E EATE A TE A A E E A EA E
88. SMS Zentrale ein ber die Sie SMS senden m chten Geben Sie die Nummer im Internationalen Format an z B 491722270000 F r den Empfang ist diese Einstellung unrelevant denn jede beliebige SMS Zentrale kann Nachrichten zum Modem senden egal was Sie hier einstellen AT CMGS x Mit diesem Befehl senden Sie eine SMS Nach Eingabe des Befehls erscheint ein gt Zeichen als Eingabeaufforderung f r die Daten Geben Sie dann die Daten ein und dr cken Sie zum Schluss Strg Z Das Datenformat ist im n chsten Kapitel erkl rt Geben Sie anstelle von x die L nge der Daten ein und zwar nach der Formel x Anzahl der Zeichen 2 1 Wenn Ihre Daten z B 30 Zeichen Lang sind dann ist x 14 Seite 39 SMS Anwendungen 4 1 4 PDU Datenformat Empfangen Im vorherigen Kapitel haben Sie die Modembefehle zum Senden und Empfangen von Kurzmitteilungen kennen gelernt Die Texte werden leider weder im Klartext eingegeben noch angezeigt Nun zeige ich Ihnen wie die Texte codiert werden In den Zahlenketten geh ren immer zwei Ziffern zusammen Jedes P rchen ist ein Byte in Hexadezimaler Darstellung Eine Empfangene SMS sieht z B so aus 0791947122720000040C919471123254F60000031092516195040AE8329BFD4697D9EC37 L nge der SMSC Nummer hier 7 Bytes Formatangabe und Nummer werden gez hlt Format der SMSC Nummer 91 International A1 National SMSC Nummer 491722270000 Bit 6 User Data Header Indikator Ist 1 wenn die Date
89. SQL Datenbank testen Erstellen Sie auf dem Webserver die Datei usr local apache2 htdocs test php mit folgendem Inhalt lt html gt lt body gt Das ist HTML Text lt br gt lt php print Das ist PHP Text lt br gt print Es folgt eine MySQL Abfrage lt br gt mysql_connect localhost root Mein Passwort mysql select _db mysql Sergebnis mysql query select user host password from user for nr 1 Sreihe mysql_fetch_row ergebnis nr print Sreihe 0 Sreihe 1 reihe 2 lt br gt 2 gt lt body gt lt html gt Verwenden Sie beim mysql_connect Befehl den Namen Ihres MySQL Servers und das richtige Passwort Wenn der Webserver zugleich MySQL Server ist dann ist localhost als Name einzugeben Stellen Sie sicher da diese Datei ausreichende Lese Rechte hat chmod atr usr local apache2 htdocs test php Starten Sie nun einen Web Browser und geben Sie http localhost test php oder http lihr_webserver_nameltest php ein Es sollte folgendes erscheinen Das ist HTML Text Das ist PHP Text Es folgt eine MySQL Abfrage root localhost x4fhg425fdfds Die erste Zeile ist ganz normaler HTML Code die zweite testet die PHP Integration in den Webserver Die dritte und vierte Zeile testet die Verbindung zur MySQL Datenbank Schauen Sie sich noch einmal das Beispielprogramm an Sie sehen hier deutlich wie ein St ck Programmcode miitten in die HTML Datei eingef gt wurde Anfang und Ende we
90. SUN Solaris Sun bietet das Betriebssystem Solaris sowohl f r die eigenen Sun Computer als auch f r PC an Zur Zeit ist die amp Sun Versionen 9 aktuell auch 2 9 genannt microsystems Da die Hersteller von PC Hardware aber nur sehr selten Solaris Treiber entwickeln und Sun sich auch nicht ernsthaft darum k mmert k nnen Sie Solaris auf einem PC nur bedingt einsetzen Ein SUN Server mit Solaris l uft sehr zuverl ssig und effizient Da SUN einen guten allerdings auch teuren Support anbietet ist dieser Lieferant empfehlenswert wenn Sie ein zuverl ssiges System mit m glichst geringen Ausfallzeiten ben tigen Solaris hat etwas weniger Werkzeuge als Linux Dennoch ist eigentlich alles drin was man so braucht Und die wenigen Programme die man zus tzlich ben tigt bekommt man gr sstenteils kostenlos aus dem Internet Ein umfangreiches Verzeichnis mit Solaris Freeware finden sie z B unter http www sunfreeware com Die meisten Anwendungsbeispiele in diesem Buch beziehen sich auf Linux aber Solaris ist wie Linux ein Unix Betriebssystem und daher weitgehend mit Linux identisch Solange es alle f r Ihre Anwendung n tigen Programme auch f r Solaris gibt spricht nichts dagegen sich f r einen SUN Computer mit SUN Solaris zu entscheiden Die Anwendungen dieses Buchen laufen unter Solaris ab Version 6 Wer an einem SUN Computer arbeitet sollte m glichst die folgenden Schulungen bei SUN besuchen e Grundlagen von Solaris e Solaris A
91. Sache automatisieren wollen Dazu m ssen Sie Software installieren konfigurieren und anwenden Dieses Kapitel zeigt Ihnen die Installation der Programme die ich Ihnen zu Beginn des Buches vorgestellt habe Ich habe f r jedes Betriebssystem ein eigenes Unterkapitel geschrieben Nach dem Lesen dieses Kapitels werden Sie imstande sein einen Webserver mit dynamischen Inhalten PHP und Datenbank Anbindung MySQL zu installieren Au erdem werden Sie die SMS Server Tools installieren k nnen Die Installationsanleitungen leiten Sie Schritt f r Schritt an indem Sie Ihnen jeden Befehl zeigen den Sie eingeben m ssen Zum Abschluss testen Sie den Webserver und die Datenbank anhand einer kleinen selbstgeschriebenen dynamischen Webseite 4 2 1 Software Installation unter Solaris Diese Schritt f r Schritt Installationsanleitung geht davon aus dass Sie die Software auf einem leeren bzw neuen SUN Rechner mit Solaris 6 7 8 9 oder 10 installieren Gehen Sie dieses gesamte Kapitel der Reihe nach durch 4 2 1 1 Solaris konfigurieren Installieren Sie zuerst Solaris von der Solaris CD Rom und zwar vollst ndig oder wenigstens mit Entwicklungswerkzeugen Developer und Web Browser z B Netscape Loggen Sie sich als root ein und starten Sie ein Terminal Fenster Diese Konfiguration gilt f r alle Server ihrer SMS Anwendung Falls mysql oder apache bereits installiert ist entfernen Sie diese wieder um Versionskonflikte zu vermeiden Sie
92. Script installieren Sie als Checkhandler Es erzeugt f r jede Zielnummer eine eigene SMS Datei Das Senden der Originaldatei mit mehreren Zielen verbietet es indem es immer den Exitcode 1 zur ckliefert Nennen Sie das Script split_multi_sms sh bin sh if cat 81 formail zx Tor we lt 1 gt 1 then cat 1 formail zx To while read num do file mktemp var spool sms outgoing send XXXXXX cat 1 formail f I To Snum gt Sfile done exit 1 else exit 0 fi In diesem Script wird der formail Befehl dreimal benutzt Die ersten beiden Aufrufe liefern eine Liste mit den Empf ngern Der wc Befehl z hlt die Anzahl der Zeilen also die Anzahl der Empf nger Nur wenn mehr als eins gez hlt wurden wird die Datei gesplittet Beim zweiten mal wird diese Liste der Empf nger mittels Ausgabeumleitung durch das Zeichen an eine while Schleife bergeben Die Schleife f r jeden Empf nger wiederholt und liest dessen Rufnummer mit dem read Befehl in die Variable num ein Dann erzeugt sie eine neue SMS Datei mit mktemp Es folgt ein Formail Aufruf der die Originaldatei in die neue Zieldatei schreibt und dabei gleichzeitig dem Empf nger durch num ersetzt Die neue SMS Datei enth lt danach also nur noch einen einzigen Empf nger Bitte beachten Sie dass diese Methode nicht mit bin ren Dateien funktioniert Formail wurde f r Texte entwickelt und kann bin re Daten nicht korrekt wiedergeben Sollten Sie die gleiche Funkti
93. Shell an Ihr Hauptverzeichnis c herankommen Dazu m ssen Sie nur wissen dass alle Laufwerksbuchstaben unter cygdrive wiederzufinden sind Windows CygWin Shell cAcygwin c cygwin tmp tmp ci cygdrive c di cygdrive d en cygdrive e c windows cygdrive c windows Wenn Sie Is cygdrive eingeben sehen Sie vieleicht nicht alle Laufwerksbuchstaben die sie erwarten Ich konnte nicht herausfinden warum das so ist aber sie existieren und funktionieren auf jeden Fall auch wenn sie nicht angezeigt werden Seite 72 SMS Anwendungen 4 3 4 Zugriffsrechte Unter Ms Dos kann jeder Benutzer jede Datei ffnen Sie k nnen Ver nderungen verbieten indem Sie die Datei mit dem attrib Befehl schreibsch tzen Doch jeder Benutzer kann den Schreibschutz mit dem selben befehl wieder entfernen Unter Unix funktioniert das etwas anders weil Unix von Anfang an f r mehrere Benutzer pro Rechner ausgelegt war und von Anfang an Netzwerk Funktionen hatte CygWin simuliert die Zugriffsrechte von Unix damit Unix Programme ohne gro e Ver nderung auch unter Windows laufen Jede Datei hat drei Gruppen von Zugriffsrechten Besitzer u Gruppe g e Fremde o Besitzer ist derjenige der die Datei erstellt hat Die Gruppe ist immer unknown Alle Benutzer des Windows PC sind Mitglied der Gruppe unknown weil es unter Windows 95 keine Benutzergruppen in Unix Stil gibt und CygWin urspr nglich f r Windows 95 entwickelt wurde Fre
94. Sie nicht das Script als ausf hrbar zu markieren indem Sie chmod a x usr local bin alarmevent sh eingeben Das war schon alles Sie k nnen jetzt an zentraler Stelle Alarme empfangen und im Webbrowser anzeigen Wenn Sie auf dem Server zus tzlich den Apache Webserver installieren oder das Verzeichnis mit der HTML Datei im lokalen Netzwerk freigeben k nnen auch andere PC diese Alarm Liste anzeigen Seite 214 SMS Anwendungen 7 2 Fahrzeugortung Sie k nnen Fahrzeuge mit Hilfe der SMS Server Tools berwachen Ein Falcom GSM Modemmit GPS Zubeh r sendet regelm ssig die geographische Position des Fahrzeuges an Ihren Computer Mit Hilfe einer Landkarte k nnen Sie dann jederzeit den Standort des Fahrzeuges ausmachen Eine MySQL Datenbank wird verwendet um die gemeldeten Positionen des Fahrzeuges aufzuzeichnen Sie k nnen die Datenbank mit dem SQL Client oder einer PHP Webseite auslesen 7 2 1 Senderseite Verwenden Sie ein Falcom A3D Modem mit GPS und GSM Antenne Verbinden Sie die Ignition Leitung des Modems mit der gleichnamigen Leitung des Z ndschlosses damit sich das Modem entsprechend aus und ein schaltet Konfigurieren Sie das Modem zun chst so dass es die PIN nach dem Einschalten automatisch eingibt denn es soll sp ter selbstst ndig ohne Computer als Alarm Sender eingesetzt werden AT CPIN 1234 amp CNF PIN 1 Stellen Sie nun die SMSC Nummer ein AT CSCA 49172270000 AT CSAS Die n chsten Befehle legen
95. TD gt lt TD gt 57 lt TD gt lt TR gt lt TR gt lt TR gt lt TR gt lt TR gt lt TR gt Wenn Sie einen einzigen Wert innerhalb eines Shell Scriptes abfragen wollen und diese in eine Variable speichern wollen k nnen Sie das so tun derwert mysql u root p xxxxx D demo N B e select wert from tabelle where id 1 echo Der Wert ist derwert Achten Sie auch korrekte Hochkomma Setzung denn es gibt drei sehr hnliche Zeichen Sie k nnen auf diese Weise nur SQL Befehle ausf hren die einen einzigen Wert liefern weil Sie sonst alle Werte hintereinander in der Variablen stehen haben und das n tzt Ihnen nichts Seite 101 SMS Anwendungen 4 7 13 Datensicherung Dies ist nun das letzte Kapitel ber MySQL dennoch ist es sehr wichtig Es gibt viele Methoden Backups von MySQL Datenb nken anzulegen von denen ich Ihnen zwei Methoden vorschlagen m chte 1 Cold Backup Unter Cold Backup versteht man eine Datensicherung w hrend die MySQL Server Software gestoppt ist Das heisst dass w hrend des Backups berhaupt kein Zugriff auf die Datenbank besteht e Stoppen Sie dazu zuerst den MySQL Server Kopieren Sie die Dateien frm MYD und MYI auf einen anderen Datentr ger z B ein Bandlaufwerk Starten Sie den MySQL Server wieder 2 Hot Backup Beim Hot Backup sichern Sie einzelne Tabellen im laufenden Betrieb Leider besteht w hrend dieses Vorganges nur Lesezugriff auf die Tabelle A
96. Telefonnummern d rfen die Listen auch Kommentare enthalten Markieren Sie alle Kommentare indem Sie ihnen ein Raute Zeichen voran stellen Beispiel Dies ist die schwarze Liste 491721234567 Der hier soll nie SM bekommen 491721111111 will keine SM mehr bekommen 7 4 2003 Die weisse und schwarze Liste sind sofort aktiv Sie brauchen die SMS Server Tools nicht neu starten wenn Sie die Listen ver ndert haben Wenn Ihre weisse oder schwarze Liste sehr gro ist kann es aus Geschwindigkeitsgr nden besser sein einen Checkhandler zu benutzen der die G ltigkeit der Telefonnummer mit einer SQL Datenbank kontrolliert In den Anwendungsbeipspielen am Ende dieses Buches werde ich darauf n her eingehen Seite 192 SMS Anwendungen 5 12 Statistik Dateien Statistik Dateien werden auf Wunsch in regelm ssigen Zeitabst nden von smsd geschrieben Sie infomieren ber die Auslastung der Modems sowie die Anzahl der gesendeten und empfangenen SM Beispiel runtime rejected 1200 1 name succeeded failed received multiple failed usage_s usage_r GSM1 20 0 1 0 80 0 GSM2 5 0 1 0 40 900 Diese Beispieldatei wurde von einem System mit zwei GSM Modems geschrieben Das Dateiformat erlaubt ein einfaches Einlesen in eine Tabellenkalkulation wie z B Microsoft Excel oder KSpread Es gibt immer eine Zeile mit globalen Z hlern sowie f r jedes GSM Modem eine Zeile mit Modemspezifischen Z hlern Globale Z hler e Laufzeit des Programmes
97. UTC Breitengrad 37 Grad 23 Minuten 24 Sekunden Nord L ngengrad 121 Grad 58 Minuten 34 Sekunden West 7 Satelliten wurden empfangen H he 9 Meter ber Normal Null Seite 216 SMS Anwendungen 7 3 eMail zu SMS Gateway Sie k nnen mit einem eMail Client SMS senden wenn Sie Ihren Mailserver mit den SMS Server Tools verbinden Zwei unterschiedliche L sungsm glichkieten m chte ich Ihnen in diesem Kapitel vorstellen e eMail zu SMS Gateway mit lokalem Mailserver e eMail zu SMS Gateway mit entferntem Mailserver Die erste Variante geht nur unter Unix denn nur Unix Mailserver unterst tzen die in diesem Buch vorgestellte Methode Die zweite Variante k nnen Sie auch unter Windows anwenden Nach Installation eines solchen Gateways k nnen Sie SMS mit jedem eMail Programm senden Als Empf nger geben Sie eine bestimmte feste Adresse an In die Betreff Zeile schreiben Sie die Handynummer des Empf ngers Sie m ssen das eMail Programm so einstellen dass es den Nachrichtentext im Ascii Format sendet und nicht im HTML Format Eine geeignete eMail sieht z B so aus From Frank Mustermann lt mustermann irgendwo de gt To 491721234567 lt sms localhost gt Subject not used Hallo das ist eine Test SMS 7 3 1 eMail zu SMS Gateway mit lokalem Mailserver Sie ben tigen dazu einen Server mit den SMS Server Tools und der Mail Server Software Sendmail Sie k nnen die beiden Programme auch auf unterschiedl
98. Wenn das erste Wort fan enth lt dann Logische Operatoren setzte man in Awk ein um mehrere Vergleiche zu kombinieren Und Oder Nicht Beispiel if a 3 amp 8 amp b 4 Wenn a 3 und b 4 ist dann 4 10 8 Bedingungen mit if Mit dem Schl sselwort if k nnen Sie einen oder mehrere Befehle Bedingt ausf hren If ist eine Alternative zu den Bedingungen aus Kapitel 4 10 3 die flexibler verwendbar ist if Bedingung Befehl else Befehl oder auch if Bedingung Befehle Befehle Befehle else Befehle Befehle Befehle Wenn Sie mehr als einen Befehl bedingt ausf hren m chten schreiben Sie geschweifte Klammern davor und dahinter Sie bilden damit Bl cke Der else Abschnitt kann weggelassen werden Beispiel if a 3 print Die Variable a ist jetzt 3 Seite 153 SMS Anwendungen 4 10 9 Schleifen mit while Schleifen benutzt man wenn ein Befehl oder ein Block von Befehlen mehrmals ausgef hrt werden soll Die while Schleife kann auf zwei Unterschiedliche Arten verwendet werden while Bedingung Befehl do Befehl while Bedingung Die beiden Varianten Unterscheiden sich nur darin ob die Bedingung bei jeder Wiederholung vor oder nach dem befehl gepr ft wird Beispiel a 0 while a lt 10 print Die Variable a ist jetzt a artz Diese Schleife z hlt von O hoch bis 9 4 10 10 Schleifen mit for Von der Programmiersprache C hat awk sich die for Schl
99. Windows und Unix Programm report boolean Wenn Sie diese Einstellung auf yes stellen fordert das Modem f r jede gesendete Kurzmitteilung einen Statusbericht bei der SMS Zentrale an Nicht jede SMS Zentrale unterst zt diese Funktion in Deutschland sollten Sie damit aber kein Problem haben Viel h ufiger sind die Modems selbst schuld wenn das Empfangen von Statusberichten nicht funktioniert Viele Modems von Siemens Digicom und Wavecom k nnen keine Statusberichte empfangen Und alle mir bekannten Handies empfangen zwar Statusberichte aber sie k nnen diese nur auf dem Display anzeigen und nicht ber die serielle Schnittstelle vom Computer auslesen lassen Falcom Modems haben sich in dieser Hinsicht als absolut zuverl ssig erwiesen eventhandler Programmname Immer wenn eine Kurzmitteilung gesendet oder empfangen wurde oder wenn das Senden fehlgeschlagen ist kann smsd ein externes Programm aufrufen Geben Sie das Programm mit vollem Pfad an Ereignisprogramme werden sp ter detailliert erkl rt Wenn Sie sowohl im Hauptabschnitt als auch hier einen Eventhandler angeben dann hat dieser hier Vorrang Die SMS Server Tools starten immer nur einen Eventhandler und zwar vorzugsweise den Modem spezifischen Seite 176 SMS Anwendungen 5 3 SMS Server Tools starten stoppen In diesem Kapitel lernen Sie wie Sie die SMS Server Tools korrekt starten und stoppen Das Hauptprogramm der SMS Server Tools heisst smsd Alle ander
100. _ARGS fi Die if Kontrollstruktur pr ft ob ein Passwort gesetzt wurde Wenn ja dann wird in der Variable SQL_ARGS die Option gespeichert mit der man dem MySQL Client mitteilt welches Passwort er gef lligst benutzen soll Wenn kein Passwort festgelegt wurde dann bleibt SQL_ARGS erstmal leer SOL ARGS h SQL HOST u SQL USER SQL ARGS D SOL DATABASE s e Nun werden weitere Optionen f r den MySQL Client zusammengestrickt n mlich Hostname Username Passwort was zuvor in SQL_ARGS stand und Name der Datenbank An dieser Stelle steht fest wie der MySQL Client gestartet wird um SQL Abfragen an die Protokolldatenbank zu senden und zwar so mysql SQL ARGS Anstelle der drei P nktchen muss nun nur noch der SQL Befehl eingesetzt werden Jetzt kommt es darauf an was f r ein Ereignis aufgetreten ist Beim Senden Empfangen und bei Status Reports muss jeweils eine anderer SQL Befehl abgesetzt werden if 1 FAILED 1 SENT then elif s n RECEIVED then elif s n REPORT then a ER Bei gesendeten und fehlgeschlagenen Sendeversuchen kann der gleiche SQL Befehl abgesetzt werden Bei Empfangenen SM wird ein zweiter SQL Befehl abgesetzt und bei Statusberichten wird der dritte SQL Befehl ausgef hrt Die if Kontrollstruktur erf hrt durch 1 welches der m glichen Ereignisse aufgetreten ist Erfolgreich und erfolglos gesendete SM werden mit dem selben SQL Befehl in die Datenbank eing
101. aben in der Ger tebeschreibung fehlen Multiplizieren Sie die Batteriespannung mit der Kapazit t und teilen Sie das Ergebnis durch zwei Beispiel Auf der Batterie steht 12V 110 AH 12V 110AH 2 660VAH Das bedeutet dass eine USV mit dieser Batterie ein System mit 660VA Stromverbrauch eine Stunde lang versorgen kann W rde Ihr System 1320VA Strom verbrauchen dann w rde die Batterie entsprechen f r eine halbe Stunde ausreichen Die Batterieleistung wird in dieser Formel halbiert weil die Elektronik der USV die aus der Batteriespannung 230V AC macht deutlich weniger als 100 Wirkungsgrad hat und die Leistung der Batterie schnell nachl sst Wenn Sie die Leistung durch zwei teilen erhalten Sie einen praxisnahen Anhaltswert Batterien sind nur begrenzt haltbar Nach Ihrer normalen Lebensdauer sinkt die Kapazit t rasch ab und damit auch die maximale Zeit die Ihre USV berbr cken kann Sie m ssen die Batterien also regelm ssig pr fen und austauschen z B j hrlich Das ist aber nicht m glich wenn Sie Ihren Server 24 Stunden t glich betreiben wollen Es gibt gegen dieses Problem nat rlich auch eine L sung und zwar USV die die Batterie automatisch testen und deren Batterie Sie im laufenden Betrieb auswechseln k nnen Achten Sie beim Kauf auf ein solches Leistungsmerkmal wenn f r Sie ein 24 Stunden Betrieb wichtig ist Es gibt USV Ger te die neben einem akustischen Alarm Ihren Server auch automatisch herunterfahren k nne
102. ach in die Datei hinein Alle diese Informationen stehen n mlich in jeder empfangenen Datei From 491721234567 From SMSC 491722270333 Sent 00 02 21 22 26 23 Received 00 02 21 22 26 29 Subject GSM1 Hallo wie geht es Dir Die erste Zeile benennt den Absender der Nachricht Die zweite Zeile zeigt an welche SMS Zentrale Ihnen diese Nachricht zugestellt hat Es folgen die Zeitstempel wann die Nachricht vom Absender losgeschickt wurde und wann sie von Ihrem Computer empfangen wurde Die Subject Zeile benennt das Modem welches die Nachricht empfangen hat Der Autor des Programmes hat diese Zeile so genannt weil man dann eine SMS sehr einfach als eMail weiter leiten kann Seite 179 SMS Anwendungen 5 6 SMS Dateiformat SMS Dateien hneln dem Aufbau von eMails Sie beginnen mit einem Vorspann Header und enden mit dem Text Dazwischen steht eine Leerzeile zur Trennung der beiden Abschnitte Vorspann Text Wie bereits erw hnt ist der Dateiname v llig beliebig jedoch sollten Sie darauf achten dass jede Nachricht einen eindeutigen Namen hat der nicht mehrfach vorkommt Was genau alles im Vorspann stehen kann h ngt davon ab was genau gesendet werden soll oder was Sie empfangen haben Diese Details erfahren Sie auf den n chsten Seiten Die Reihenfolge der Angaben im Vorspann spielt keine Rolle Manche Header entha ten booleansche bin re Werte In diesen F llen bedeutet yes true on und 1 alle das gleiche w
103. age nach Beginn der Blutung statt 7 5 1 Das Anmeldeformular Die Anmeldeseite lautet eisprung html und sieht so aus lt html gt lt body gt lt b gt Herzlich willkommen beim Eisprung Erinnerungsdienst lt b gt lt p gt Wenn Sie sich auf dieser Seite anmelden Ihr Handy die Sie lt p gt lt form action anmel den php method post gt Meine Handynummer lautet lt inpu size 15 maxleng Einstellungen sollen mit dem Passwort Meine lt inpu size 10 maxleng gesichert werden t type text t type text name handynummer th 15 value 491721234567 gt lt p gt name password th 15 value geheim gt lt p gt Die letzte Blutung begann am lt inpu Ein Zyklus dauer lt inpu size 2 maxlengt type submit name aktion value bestellen gt type submit name aktion value stornieren gt lt inpu lt inpu lt form gt lt p gt Zum Stornieren des Dienstes brauchen Sie nur Ihre Handynummer und das Passwort eingeben size 10 maxleng t type text t type tex name blutung th 10 value 23 3 2003 gt lt p gt bei mir immer name zyklus h 2 value 28 gt Tage lt p gt Klicken Sie danach auf stornieren lt body gt lt html gt Seite 220 erhalten Sie ein Jahr lang Kurzmitteilungen auf an den Eisprung und an die Blutung erinnern SMS Anwendungen So sieht diese Webseite im Webbrowser aus Dokument Bearbeiten
104. aler Darstellung Ein Statusreport sieht z B so aus 079194712272000002010C919471123254F6031092516195040310925171050400 L nge der SMSC Nummer hier 7 Bytes Formatangabe und Nummer werden gez hlt Format der SMSC Nummer 91 International A1 National SMSC Nummer 491722270000 Bit 2 Ist 0 wenn noch weitere zusammenh ngende SMS empfangen werden Bit 1 0 Ist 10 als Kennzeichen f r einen Status Report ID Nummer der gesendeten SMS L nge der Empf nger Nummer hier 12 Ziffern Die Formatangabe wird nicht mitgez hlt Format der Empf nger Nummer 91 International A1 National DO Alphanumerisch Empf nger der SMS zu der dieser Report geh rt Hier 49172123456 Zeitzone in viertel Stunden Negative Werte sind M glich und werden durch Addition von 80 dargestellt 04 bedeutet GMT 1 Stunde Auslieferungszeit der SMS beim Endger t in der Reihenfolge Jahr Monat Tag Stunde Minute Sekunde Jede zweite Ziffer ist vertauscht Hier steht also 29 01 03 15 17 50 Wenn die SMS noch nicht ausgeliefert wurde ist das Datum 00 00 00 00 00 00 Zeitzone in viertel Stunden Negative Werte sind M glich und werden durch Addition von 80 dargestellt 04 bedeutet GMT 1 Stunde Status An dieser Stelle k nnen weitere Daten kommen deren Bedeutung vom SMSC abh ngt Telefonnummern werden mit F aufgef llt wenn die Anzahl der Ziffern ungerade ist Manche SMSC z hlen das F bei der L
105. als EDV Techniker dann als Programmierer f r SMS Dienste und Datenbanken und dann als Hardware Entwickler Die dort erlernten Qualifikationen erm glichten mir einen zentralen Arbeitsplatz bei dem gr ssten Mobilfunknetz Betreiber Europas wo ich f r den Betrieb von rund 250 Computern verantwortlich bin und Schulungen durchf hre Mein kostenloses Programm SMS Server Tools erfreut sich gro er Beliebtheit Es wird von zahlreichen Firmen f r die unterschiedlichsten Zwecke kommerziell eingesetzt Wenn Sie R ckfragen oder Kritik zum Buch haben k nnen Sie mich per eMail unter der Adresse smstools meinemullemaus de erreichen 1 3 Was ist SMS SMS ist die Abk rzung f r Short e Message e Service Dabei handelt es sich um eine kurze Textmitteilung mit maximal 160 Zeichen 7 Bit die von Mobiltelefon zu Mobiltelefon gesendet werden k nnen Manche Ger te unterst tzen auch bin re Kurzmitteilungen mit 8 Bit zur bertragung kleiner Bilder Klingelt ne oder Konfigurationsdaten f r das Mobiltelefon Die Kurzmitteilung wird normalerweise ber die Tastatur des Mobiltelefons eingegeben und zun chst auf der SIM Karte gespeichert Dann wird sie durch den Signalisierungskanal der auch f r den Rufaufbau und Rufabbau zust ndig ist zum SMSC gesendet Da es mehrere SMSC gibt kann man im Mobiltelefon konfigurieren welches man verwenden m chte Das SMSC speichert die Kurzmitteilung bis zu zwei Tage lang und sendet sie ebenfalls d
106. als Unterprogramm dann kennt dieses keine Variablen des haupt Scriptes Auch das haupt Script kennt keine Variablen des Unter Scriptes ausser wenn diese exportiert werden Das klingt kompliziert es ist aber ganz einfach Schauen Sie sich dieses Beispiel an Seite 127 SMS Anwendungen bin sh Diese Datei heisst testl0 sh Namel Rafael echo Der erste Name ist Namel test11 sh echo Der zweite name ist Name2 bin sh Diese Datei heisst testll sh echo Beginn Unterprogramm echo Der erste Name ist Namel Name2 Alexander echo Der zweite name ist Name2 echo Ende Unterprogramm Speichern Sie sich diese beiden Scripte ab und setzen Sie wie gehabt mit chmod a x test sh das Ausf hrrecht Geben Sie dann ein test10 sh Sie erhalten dann folgende Bildschirmausgabe Der erste Name ist Rafael Beginn Unterprogramm Der Erste Name ist Der zweite Name ist Alexander Ende Unterprogramm Der Zweite Name ist Wie Sie sich bereits warscheinlich denken k nnen Sie Name2 mit export exportieren oder Sie rufen das Unterprogramm mit dem Punkt Befehl auf um diesen Fehler zu beheben Dann wird Alexander auch im Hauptprogramm bekannt sein Abschliessend m chte ich noch etwas zu den variablen Namen bemerken Schreiben Sie Variablennamen nicht komplett in gro en Buchstaben Alle Variablen des Betriebssystems sind n mlich so geschrieben und als Anwender sollten sich Ihre eigenen Variabl
107. alten l schen haben Sie gerade gesehen Der Befehl dazu war alter table anschriften drop geschlecht Die Spalte mit dem Geschlecht ist nun verschwunden Einzelne Reihen l schen sie so mysql gt delete from anschriften where id 3 Query OK 1 row affected 0 00 sec mysql gt select from anschriften id name vorname strasse plz ort geburtsdatum 1 Mustermann Markus Bachstrasse 13 11111 Irgendwo NULL 2 Musterfrau Michaela NULL 22222 Wasserdorf NULL 2 rows in set 0 00 sec Vergessen Sie nicht das Schl sselwort where sonst l schen Sie versehentlich alle Reihen Zum Schluss zeige ich Ihnen die Befehle mit denen Sie die beiden gesamten Tabellen l schen sowie die ganze Datenbank drop table anschriften drop table kontostand drop database adressen Nun sind die ganzen Test Daten die Sie angelegt haben w hrend Sie diese Kapitel durchgearbeitet haben gel scht Seite 99 SMS Anwendungen 4 7 12 SQL Abfragen in Shell Scripten Sicher wollen Sie die Ergebnisse von SQL Abfragen nicht immer in der tabellarischen Form sehen wie ich es Ihnen in den vorherigen Kapiteln gezeigt habe Manchmal m chten Sie L
108. an Der Installer downloaded alle Dateien aus dem Internet und installiert sie 2 6 3 Apache Webserver Der Apache Webserver ist mit gro em Abstand der meisst genutzte Webserver der Welt 80 aller Webseiten werden mit diesem Server betrieben Er unterst tzt CGI Scripte in Perl PHP und TCL sowie ssl Verschl sselung Webseiten k nnen mit Passw rtern versehen werden Sie k nnen den Apache Webserver von der Apache Webseite http www apache org kostenlos downloaden Eine sehr umfangreiche Anleitung auch f r den Schnellstart finden Sie ebenfalls auf der Apache Webseite F r die ersten Versuche sind Beispiel Webseiten mitgeliefert 2 6 4 War FTP Daemon Der War FTP Daemon ist f r alle Windows Computer mit Internet Anbindung eine optimale Erg nzung W hrend der Apache Webserver nur das HTTP Protokoll zur Verf gung stellt k nnen Sie mit dem War FTP Daemon einen vollwertigen FTP Server aufbauen Die Zugriffsrechte lassen sich sehr komfortabel per Mausklick einstellen und sie k nnen beliebig viele User anlegen Installieren Sie den War FTP Daemon wenn Sie Ihren Kunden Downloads oder Uploads per FTP erm glichen m chten Sie erhalten das Programm kostenlos unter http www jgaa com Seite 24 SMS Anwendungen 2 6 5 MySQL Datenbank MySQL ist wie der Name schon sagt eine SQL Datenbank AN Ich benutze MySQL immer wenn eine Anwendung mittlere bis gro e Datenmengen speichern und wieder laden NA SQU muss Die Ver
109. ane Nara E RE Aa AREA hehe Fersen 37 AI SMS M d mbefehle ninsis n A a aa dird N EHRE da i a i 38 4 1 4 PDU Datenformat Emp Mii selig 40 4 1 5 PDU Datentformat Status Reporta A EENE a airada 40 4 1 6 PDU Datenformat Senden 4 22404444400nnn0nnnnnnannnnnnnnnnnnonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnsnnnnnnnnnnnnnnnnnnnnn 43 E A AAA ON 45 4 1 8 Praktische B eilspleler io a 24 22222 RR A E 48 4 2 SoftWare Installation iii iaa irc AI A EA AA EA 50 4 2 1 Software Installation unter Solaris edia tlo natacion AEK p Fangen Aai ratda Dana nana id 50 4 2 1 1 S0larisKonfig ere Mesnine A id el 50 ALZADO Packages asta at 51 4 2 1 3 MySQ L k nfig rierena 2 2 en ernennen EAN Daea pa a da Aaa een EEOSE ESTEA cadenas nen dasnapiad 52 4 2 1 4 Apache and PHP compileren dirici inead aaar A ie 53 4 2 1 5 Apache und PHP konfigurieren 24044s440snnnsnnnnnnnnnnnnnnnnnnnnnennnnnnnnnnnnnnnnennnnnnnnnnnnnnnennnnnnnnnnnnnnnennnnsnnnnnnnnnsnann 54 4 2 1 6 Apache PHP Und MySQL Testi tb 55 ALL SU CONO AM a ad dia 56 4 2 1 8 Merkliste f r SONAS ia a CA AAA AA AAA ARA AAA AAA AAA 57 4 2 2 Softwareinstallation unter Windows ruuusssessnensnnsnnnnnnnsnnnnnnennnnnnnnnnnennnnnnnnnnnennnnnnnnnnnennnnnnnnnnnnnnnnnnnnnnnennnnnnnennnnnnnnnnnnnnnnnen 58 4 2 2 1 Windows Programme Installieren it Ralichiinllea ln he 58 AL A IS 222 22 a A a aa A a a E a E 59 4 2 2 32ABache und PHP I
110. apache conf httpd conf Fehler Logdatei lusr local apache logs error log Webseiten lusr local apache htdocs Die Position dieser Dateien kann bei manchen Linux Distributionen abweichen MySQL Datenbank starten letc init d mysqld start stoppen letc init d mysqld stop Client mysql u root p Crontab ndern EDITOR kedit export EDITOR crontab e Wenn kedit nicht installiert ist m chten Sie vielleicht xedit oder vi stattdessen benutzen Seite 68 SMS Anwendungen 4 3 CygWin Schnelleinstieg Die meisten Windows Administratoren sind mit der Unix Shell nicht vertraut Daher stelle ich Ihnen in diesem Kapitel im Schnelldurchgang alles Wissenswerte ber die CygWin Bash Shell vor Machen Sie sich mit der Shell vertraut denn sie werden sp ter h ufig damit arbeiten m ssen Fast alle Programme mit denen dieses Buch arbeitet werden durch Eingabe von Befehlen gesteuert denn sie haben keine grafische Oberfl che die Sie mit der Maus bedienen k nnen 4 3 1 Die Shell Die folgenden Bildschirmfotos sind aufgehellt um Papierstau in Laserdruckern zu vermeiden und Tinte bzw Toner zu sparen Ich hoffe der Kontrast ist ausreichend um die Texte lesen zu k nnen Die Shell entspricht funktionell der MS Dos Eingabeaufforderung Hier geben Sie alle Unix Befehle ein Wenn ich Sie in diesem Buch zur Eingabe eines Befehles auffordere tun Sie dies immer in einer CygWin Shell denn in der MS Dos Eingabeaufforderung k nnen Sie auch
111. ar alles nur Spielerei Ich habe das Handy zur ckgesetzt die PIN gepr ft die Empfangsqualit t gepr ft und kontrolliert ob das Handy ins Netz eingebucht ist Nat rlich sind diese Befehle bei Handies berfl ssig denn wenn nicht alles Ok w re w rde im Display eine entsprechende Fehlermeldung erscheinen Da GSM Modems aber kein Display haben werden Sie diese Befehle dort brauchen Jetzt schicke ich mir selbst eine SMS at cmgf 0 OK at csca 491722270000 OK at cmgs 22 gt 0001000C919471123254F600000AE8329BFD4697D9EC37 lt Strg Z gt CMGS 106 OK CMTI SM 1 Zuerst sagte ich dem Handy dass ich Nachrichten im PDU Format schicken m chte Der n chste Befehl legt das SMSC fest ber das ich senden m chte H tte ich den Befehl weg gelassen w rde das Handy entscheiden welches SMSC es nehmen wird Mit dem dritten Befehl habe ich die SMS gesendet Dabei gab ich die L nge der PDU Daten an nach der Formel Anzahl der Zeichen 2 1 Zum Schluss habe ich die PDU Daten eingegeben und Strg Z gedr ckt Wenige Sekunden sp ter hat das Handy den Versand best tigt und angezeigt dass die Nachricht ID Nummer 106 bekommen hat Noch ein paar Sekunden sp ter hat mich das Handy mit CTMI SM 1 benachrichtigt dass es eine SMS empfangen hat Sie befindet sich auf der SIM Karte SM Speicherplatz 1 Diese empfangene SMS m chte ich nat rlich auch gleich lesen Und das geht so attcpms CPMS SM 1 10 SM 1 10 SM 1 10
112. aran denken dass diese Protkolldatei st ndig beschrieben wird Irgendwann wird Ihre Festplatte voll sein Ein Cronjob kann dies verhindern indem Sie die Protokolldatei t glich l schen Tragen Sie diese Zeile in ihre Cron Tabelle ein 00 cat dev null gt var log smsd status Dann werden das Statusprotokoll jede Nacht um 0 00 Uhr gel scht das sollte ausreichen Wie man mit Cron Jobs umgeht haben Sie bereits in einem fr heren Kapitel gelernt Seite 189 SMS Anwendungen 5 9 Ereignisprogramme Ereignisprogramme werden von den SMS Server Tools immer dann gestartet wenn eine SM empfangen wurde RECEIVED ein Statusreport empfangen wurde REPORT e eine SM gesendet wurde SENT e eine SM nicht gesendet werden konnte FAILED Sie k nnen Ereignisprogramme einsetzen um auf diese Ereignisse besonders zu reagieren und dabei irgendeine Aktion ausl sen In den Anwendungsbeispielen am Ende dieses Buches werde ich Ihnen zeigen wozu Ereignishandler gut sind Smsd installiert ein Beispiel Script welches folgendes tut smsevent Es zeigt die Argumente auf dem Bildschirm an Es ndert die Zugriffsrechte f r alle empfangenen SMS Dateien so dass jeder die Dateien lesen darf Es leitet empfangene SM als eMail an den Administrator root weiter Es leitet alle empfangenen SM an die Telefonnummer 491721234567 weiter Sie k nnen dieses Script als Vorlage f r eigene Programme benutzen Wenn die SMS Server Tools ein Ereigni
113. as Empfangen Uploaden Sie Dateien vom Server mit dem Befehl ncftpput u Username p Passwort Servername Zielverzeichnis Quelldateien Als Quelldateien k nnen Sie einzelne Dateien angeben z B tmp test txt oder auch Jokerzeichen benutzen Wenn Sie unter Unix Jokerzeichen benutzen m ssen Sie aber unbedingt einfache Anf hrungsstriche benutzen weil sonst die Shell das Jokerzeichen durch alle passenden lokalen Dateinamen ersetzt und das wollen Sie nicht Zwei richtiges Beispiele ncftpput u mustermann p test MeinServer upload tmp test txt ncftpput u mustermann p test MeinServer upload tmpitest Dieser Befehl sendet test txt zum Server und zwar in das Verzeichnis upload Wenn Sie die Option DD anwenden also ncftpput DD u werden die Dateien nach erfolgreicher bertragung auf Ihrem Rechner gel scht Sie k nnen auch mehrere einzelne Quelldateien zum Upload benennen Mit der Option R uploaden sie ein ganzes Verzeichnis z B ncftpput R u mustermann p test MeinServer upload tmp Nach diesem Upload haben Sie auf dem Server das Verzeichnis upload tmp mit allen Dateien Neftpput liefert einen Return Code der Aufschluss ber Erfolg oder Misserfolg anzeigt Innerhalb von Scripten k nnen Sie damit nach erfolglosen bertragungen entsprechend reagieren Sie k nnen den Returncode anzeigen indem Sie unmittelbar nach der Daten bertragung den Befehl echo eingeben 0 bedeutet dass die bertragung erfolgreich
114. auchen im Laufe der Zeit ganz langsam und kaum bemerkbar immer mehr Arbeitsspeicher Dies f hrt dazu dass der Server irgendwann pl tzlich langsamer wird und bei v lliger Ersch pfung des Speichers ausf llt Gelegentlich habe ich auch beobachtet dass Programme nicht unbegrenzt lange laufen k nnen weil irgendwann Z hler berlaufen oder das Programm mit der Sommer Winterzeitumstellung nicht zurecht kommt berhaupt ist das Verstellen der Systemuhr interessanterweise f r viele Programme ein erhebliches Problem Abgesehen von den Problem mit Uhr Umstellungen waren auch die SMS Server Tools vor allen diesen M ngeln nicht verschont geblieben Sie wurden aber vollst ndig behoben bis auf ein Mangel Die Festplatte wird irgendwann voll Seite 200 SMS Anwendungen 6 1 1 Protokolldateien pflegen F r das Vollaufen der Festplatte gibt es mehrere Gr nde gegen die Sie jeweils einzeln vorgehen m ssen e Protokolldateien werden unendlich gro Gesendete SM werden unendlich lange aufbewahrt Empfangene SM werden unendlich lange aufbewahrt e Fehlgeschlagene SM werden unendlich lange aufbewahrt Die SQL Datenbank wird unendlich gro Auf den folgenden Seiten beschreibe ich was Sie dagegen tun k nnen ber das Betriebssystem brauchen Sie sich brigens keine Gedanken zu machen Alle in diesem Buch genannten Betriebssysteme also SuSE Linux RedHat Linux Solaris oder Windows pflegen ihre Protokolldateien automatisch und begrenzen
115. auf die Qualit t der Hardware Die gerade neuesten Rechner sind oft eine schlechte Wahl da sie noch unzuverl ssig laufen F r SMS Anwendungen spielt die Geschwindigkeit des Prozessor keine Rolle Stellen Sie sich folgende Fragen Hat der Server alle ben tigen Anschl sse e Ist der mechanische Aufbau stabil und ordentlich e Leistet der Lieferant ausreichenden Support Sind Ersatzteile ausreichend verf gbar e Passen nur Originalteile dieses Herstellers oder Modells in das Geh use so dass Sie von deren Verf gbarkeit abh ngen e Ist die Hardware zum gew nschten Betriebssystem Windows Linux kompatibel Seite 11 SMS Anwendungen 2 3 Serielle Schnittstellen In diesem Kapitel beschreibe ich die Funktion einer seriellen RS232 Schnittstelle Sie finden hier die Anschlussbelegung unterschiedlicher Stecker sowie ein Ger t zur Erweiterung der Anschl sse 2 3 1 So funktioniert eine serielle Schnittstelle Eine serielle Schnittstelle heisst so weil sie die Zeichen seriell bertr gt Ein Zeichen besteht aus 8 Bits welche nacheinander durch eine einzige Leitung gesendet werden Beispiel Der Buchstabe A hat den Code 65 denn er ist das 65 Zeichen in der Zeichensatz Tabelle Bin r ist das die Zahl 01000001 Zur Trennung der Zeichen wird ein Startbit mit dem Wert 0 vorangestellt und ein oder zwei Stopbits mit dem Wert 1 hinten angeh ngt Die acht Datenbits selbst werden von rechts nach links bertragen also das ni
116. bbccc gt dev null 2 gt amp 1 Durch den Anhang 2 gt amp 1 der brigens ganz am Ende stehen muss teilen Sie der Shell mit dass der Fehlerkanal 2 genau dorthin umgeleitet werden soll wo auch der Ausgabekanal 1 hin geht Dieses mal erscheint die Fehlermeldung also nicht mehr Das dies auch bei Umleitung in Variablen funktioniert zeigt dieses Beispiel Ergebnis rm xxxaaabbbccc 2 gt amp 1 echo Ergebnis Falls Sie einmal selbst in einem Shell Script eine Fehlermeldung anzeigen m chten die auf Kanal 2 ausgegeben wird tun Sie das so test35 sh bin sh echo Das ist normaler Text echo Fehler Irgend etwas stimmt nicht gt dev stderr Testen Sie das Script Ergebnis test35 sh Echo Ergebnis Der normale Text steht nun in der Variable Ergebnis doch die Fehlermeldung erscheint direkt auf dem Bildschirm und ist nicht in die Variablen geschrieben worden Seite 141 SMS Anwendungen 4 9 15 N tzliche Hilfsprogramme Ich m chte Ihnen nun ein paar weitere n tzliche Hilfsprogramme vorstellen die man in Shell Scripten h ufig benutzt Dabei geht es mir nicht darum alle Funktionen dieser Programme zu beschreiben sondern nur diejenigen die ich in Zusammenhang mit SMS Anwendungen f r wichtig halte Wenn Sie sich tiefer gehend informieren wollen sollten Sie die Manual Pages der Programme lesen 4 9 15 1 cat Der Befehl cat zeigt den Inhalt einer Textdatei an cat test txt Sie k nnen die Ausgabe in ein
117. ben dev null verschluckt alles auf nimmer wiedersehen Seite 76 SMS Anwendungen Fehlermeldungen erh lt der User aber immer noch per eMail Auch diese kann man unterdr cken und zwar so command gt var log logfile 2 gt 81 Diese Kombination sollte man m glichst nicht mit dev null machen weil man sonst berhaupt nicht weiss ob der Cronjob richtig funktioniert hat Seite 77 SMS Anwendungen 4 5 Arbeiten mit eMails Viele Anwender m chten SMS Dienste mit eMail kombinieren Die folgenden Seiten gehen davon aus dass Sie bereits einen funktionst chtigen Mailserver betreiben Ich werde Ihnen zeigen wie Sie diesen mit ein paar wenigen Werkzeugen aus Sicht eines Mail Clients an der Kommandozeile benutzen Die hier vorgestellten Befehle k nnen Sie sp ter innerhalb von Shell Scripten anwenden um den Versand und dem Empfang von eMails zu automatisieren 4 5 1 Sendmail Konfigurieren Dieses Kapitel betrifft nur Unix Systeme also Linux und Solaris Sendmail ist das komplizierteste Programm zum Senden von eMails denn es kann einfach alles Dies w re eigentlich Grund genug ein anderes einfacheres Programm zu benutzen aber sendmail ist als Standardprogramm auf jedem Unix System vorhanden und es gibt nicht wirklich viele Alternativen Ein frisch installiertes sendmail kann nur lokale eMails zustellen Ich m chte Ihnen in den folgenden Kapiteln zeigen wie sie sendmail so konfigurieren dass alle eMail
118. ber noch keine Kontost nde holen wir dies jetzt nach Die n tigen Befehle sind Ihnen bereits bekannt Michaela Musterfrau hat 6 5 Euro Markus Mustermann hat 18 3 Euro Sohnemann Mustermann hat 23 1 Euro Diese Daten geben wir nun in die zweite Tabelle f r die Kontost nde ein Die ID Nummern vergeben wir manuell und zwar entsprechend der Anschriften Tabelle insert into kontostand set id 2 betrag 6 5 insert into kontostand set id 1 betrag 18 3 insert into kontostand set id 3 betrag 23 1 Sie haben nun zwei Tabellen eine mit den Adressen der drei Muster Personen und eine mit deren Kontost nden mysql gt select from anschriften id name vorname strasse plz ort 1 Mustermann Markus Bachstrasse 13 11111 Irgendwo 2 Musterfrau Michaela NULL 22222 Wasserdorf 3 Mustermann Sohnemann Bachstrasse 13 11111 Irgendwo 3 rows in set 0 00 sec mysql gt select from kontostand 20030302131155 20030302131206 20030302131230 0 00 sec E l 1 l 1 E l 1 l 1 l 1 l l ee l 1 l l 1 l l l l l l l 1 l l l 4 3 rows in set Wie sie sehen hat der SQL Server die Spalte mit dem Namen stand automatis
119. cal bin smsd s usr local bin statusmonitor sh amp Jetzt schreiben Sie das folgende Script ab und speichern es unter dem Namen usr local bin statusmonitor sh bin sh show case 2 in r echo Modem 1 is receiving s echo Modem 1 is sending i echo Modem 1 is idle b echo Modem 1 is blocked esac while read status do for num in L 23 4 36 78 9 10 11 12 13 14 15 16546 show num echo status cut c num done gt var log smsd status done Der read Befehl liest von seinem Eingabekanal eine einzige Zeile und speichert sie in die Variable status Durch die while Schleife wird dies solange wiederholt bis read einen Fehlercode zur ckliefert Das passiert genau dann wenn smsd beendet wurde In einer for schleife wird jedes einzelne Zeichen der Statuszeile mit der Funktion show angezeigt Hier wird der cut Befehl benutzt um nacheinander die Zeichen 1 bis 16 zu extrahieren Die show Funktion wandelt den Buchstaben in einen lesbarenText um aber nur bei den Buchstaben r w i und b Bei anderen Buchstaben unterbleibt jede Ausgabe Die Ausgabe der for Schleife wird in die Datei var log smsd status umgeleitet Der aktuelle Modemstatus kann also jederzeit in dieser Datei nachgesehen werden Wenn Sie drei Modems haben sieht Dateiinhalt so aus Modem 1 is sending Modem 2 is idle Modem 3 is receiving Nun ist es nicht sonderlich komfortabel immer wieder neu in die gleiche Datei hereinzuschaue
120. ch ausgef llt genau so wie ich es Ihnen versprochen hatte An dieser Spalte k nnen Sie immer sehen wann der Kontostand zuletzt ge ndert wurde Nun kommen wir zu dem eigentlichen Thema dieses Kapitels dem verkn pfen von mehreren Tabellen Einen Teil dieser Aufgabe haben Sie gerade erledigt n mlich indem Sie zusammengeh rende Reihen durch gleiche Id Nummern gekennzeichnet haben Dadurch haben Sie die Tabellen bereits verkn pft Die Tabelle der Kontost nde speichert zwar keine Namen doch mit Hilfe der Id Nummer k nnen sie in die andere Tabelle schauen und den zugeh rigen Namen auslesen Genau das m ssen Sie nicht manuell tun Sie k nnen auch den SQL Server beauftragen mehrere Tabellen verkn pft und zusammenh ngend anzuzeigen Der dazu n tige Befehl ist ganz einfach mysql gt select anschriften id name vorname betrag gt from anschriften kontostand gt where anschriften id kontostand id id name vorname betrag 1 Mustermann Markus 18 3 2 Musterfrau Michaela 69 3 Mustermann Sohnemann 23 1 3 rows in set 0 00 sec Hinter dem Schl sselwort from geben Sie beide Tabellen an aus denen Sie bestimmte Spalten abfragen wollen Hinter dem Befehl select geben Sie wie gehabt alle Spalten an die Sie sehen wollen Da es die Spalte id in beiden Tabellen gibt
121. ch beendet sich der MySQL Client wieder von selbst Durch einf gen der Option B unterdr cken Sie die Rahmen um die Felder herum und mit N unterdr cken Sie die Spalten berschriften mysql u root p xxxxx D demo N B e select from tabelle du wnA m o Sie erhalten dann diese einfache schlichte Anzeigeform die Sie in anderen Programmen z B Microsoft Excel oder KSpread sehr viel leichter einlesen k nnen Was Sie hier nicht sehen k nnen ist dass die Spalten in der Ausgabe durch Tab Zeichen getrennt sind F r Excel und KSpread ist das genau richtig Die Ausgabe des Befehles schreiben Sie durch Anh ngen von gt Dateiname in eine Datei anstatt auf den Bildschirm Beispiel mysql u root p xxxxx D demo N B e select from tabelle gt tmp test txt Seite 100 SMS Anwendungen Mit der Option H sorgen sie daf r dass der MySQL Client eine Tabelle im HTML Format erzeugt anstatt einer Textdatei Die Ausgabe sieht dann so aus lt TABLE BORDER 1 gt lt TR gt lt TR gt lt TR gt lt TR gt lt TR gt lt TR gt lt TABLE gt Wenn Sie die Option H mit N komibinieren erhalten Sie eine gerahmte Tabelle ohne Spalten berschriften lt TH gt id lt TH gt lt TD gt 1 lt TD gt lt TD gt 2 lt TD gt lt TD gt 3 lt TD gt lt TD gt 4 lt TD gt lt TD gt 5 lt TD gt lt TH gt wert lt TH gt lt TD gt 10 lt TD gt lt TD gt 13 lt TD gt lt TD gt 19 lt TD gt lt TD gt 21 lt
122. ch immer anbieten m chten Im Internet werden zahlreiche Programme angeboten mit denen Sie Klingelt ne und Logos erstellen k nnen Die meisten dieser Programm laufen nur unter Windows Sie k nnen die Dateien in der Regel nicht im Bin rformat speichern Um an die Rohdaten heranzukommen ben tigen Sie einen Computer mit den SMS Server Tools und einen Windows PC auf dem Sie die Dateien erstellen Erstellen Sie nun z B ein Logo und senden Sie es als SM mit dem Windows PC an den anderen Computer mit den SMS Server Tools Dieser speichert die empfangene Nachrichten im Verzeichnis var spool sms incoming ab Nun haben Sie eine SMS Datei im richtigen Format Diese k nnen Sie an jede beliebige andere Rufnummer senden Bei Betreiberlogos sollten Sie wissen dass der Name genauer dessen Kennzahl im Logo enthalten ist Wenn Sie ein Logo f r D2 erstellen und an einen D1 Kunden senden wird dieser das Logo niemals sehen Das Handy w rde dieses Logo nur anzeigen wenn der Kunde zu D2 wechseln w rde Um die empfangenen Bin rdatei an ein anderes Ziel senden zu k nnen m ssen Sie eine To Zeile einf gen Dazu k nnen Sie das Programm Formail leider nicht gebrauchen denn es ver ndert die Bin rdaten Formail funktioniert nur mit Textnachrichten korrekt F gen Sie die To Zeile daher mit dem echo und cat Befehl ein z B so echo To 491721234567 gt neu sms cat original sms gt gt neu sms Die Originaldatei darf freilich keine To Z
123. cht aktiv idle Das Modem ist wegen mehrfachen Fehlerversuchen blockiert blocked Ist ein Platzhalter f r nicht existente Modems Sie k nnen die SMS Server Tools einfach an der Eingabeaufforderung mit smsd s starten Nach dem Start erscheinen die oben dargestellten Statusinformation in Form einfacher Textzeilen Wenn smsd an der Eingabeaufforderun starten k nnen Sie brigens wie blich mit der Tastenkombination lt Strg gt C stoppen Viele Anwender m chten das Programm aber sicher lieber beim Booten automatisch starten und benutzen daher vorzugsweise das Start Stop Script Nun darf das Programm aber keine st ndigen Bildschirmausgaben machen wenn Sie es als Hintergrundprogram starten es soll sich eben sch n ruhig im Hintergrund aufhalten Bei Bedarf m chten Sie dennoch den Modemstatus sehen k nnen Das ist auch m glich sie brauchen nur das Start Stop Script letc init d sms oder sbin init d sms ein klein wenig ndern usr local bin smsd s gt var log smsd status Smsd schreibt nun die Statusinformationen in eine Textdatei mit dem Namen var log smsd status Sie k nnen diese Datei sp ter jederzeit ansehen vorzugsweise mit dem Befehl tail f n1 varllog smsd status Dieser Tail Befehl zeigt ihnen fortlaufend die letzte Zeile der Protokolldatei an und wartet unendlich lange dass die Datei gr sser wird Mit der Tastenkombination lt Strg gt C k nnen Sie die Anzeige stoppen Nun sollten Sie aber d
124. d das Feld bei Sohnemann einfach nur leer ist Das l sst sich wie folgt erkl ren In SQL Datenb nken ist Nichts etwas anderes wie eine leere Zeichenkette Nichts wird durch das Schl sselwort NULL angezeigt Das bedeutet dass die Strasse nicht eingegeben wurde also keine Daten vorhanden sind Bei der Postleitzahl sieht es anders aus Diese haben Sie gerade als Vorbereitung zu diesem Kapitel eingegeben und zwar als leere Zeichenkette Der Unterschied f llt besonders beim Select Befehl auf mysql gt select from anschriften where strasse Empty set 0 00 sec mysql gt select from anschriften where strasse is NULL id name vorname strasse plz ort 2 Musterfrau Michaela NULL 22222 Wasserdorf 1 row in set 0 00 sec Es gibt keine Anschrift wo die Strasse ist aber es gibt eine Adresse wo die Strasse NULL ist Beachten Sie dass sie den Ausdruck hinter die Schl sselw rter where und NULL etwas anders benutzen m ssen als wenn Sie Zahlen oder Zeichenketten vergleichen select from anschriften where strasse is NULL select from anschriften where strasse is not NULL Eine kleine Anmerkung nebenbei Wenn Sie ein bereits gesetztes Feld wieder l schen wollen also auf NULL setzen woll
125. dateiname 5 wird in dateiname 6 umbenannt dateiname 4 wird in dateiname 5 umbenannt e dateiname 3 wird in dateiname 4 umbenannt e dateiname 2 wird in dateiname 3 umbenannt e dateiname 1 wird in dateiname 2 umbenannt _ dateiname wird nach dateiname 1 umkopiert e dateiname wird durch nichts berschrieben Seite 203 SMS Anwendungen 6 1 2 Alte SMS Dateien l schen Die Protokolldateien bereiten Ihnen jetzt keine Sorgen mehr Je nach Bedarf k nnen Sie unterschiedlich viele Tage aufbewahren aber Ihre Festplatte wird nun nicht mehr unbegrenzt voll Nun sollten Sie sich um die alten SMS Dateien k mmern Je nach Konfiguration fallen hier mehr oder weniger Dateien an Schauen Sie in Ihre etc smsd conf sent var spool smsd sent failed var spool smsd failed received var spool smsd received Falls Sie eine oder mehrere dieser Zeilen in Ihrer Konfigurationsdatei haben werden Ihre gesammelten SMS Dateien im Laufe der Zeit immer mehr Alte Dateien m ssen daher regelm ssig gel scht werden Richten Sie sich den Befehl find var spool sms ctime 100 exec rm als Cronjob ein Unter Unix ist der Eintrag in der Cron Tabelle 13 0 find var spool sms ctime 100 exec rm Unter Windows lautet er alles in einer einzigen Zeile 13 0 ce cygwin bin bash c find var spool sms ctime 100 exec rm Der Find Befehl findet unter var spool sms alle Dateien die lter als 100 Tage sind F r jede Da
126. den und anschliessend f r andere Betriebssysteme angepasst wurden Daher werden besonders die Windows Administratoren grafische Oberfl chen mit bunten Buttons vermissen Trotzdem sind die Programme unter Windows und Solaris einwandfrei brauchbar Sie sollten sich nicht davon abschrecken lassen dass sich die meiste Dokumentation im Internet auf Linux bezieht Ich gehe davon aus dass Sie sich mit den jeweiligen originalen Dokumentationen vertraut machen wenn Sie mit den Programmen arbeiten 2 6 1 PDU Spy PDU Spy ist ein Werkzeug f r Programmierer Damit kann man SMS Codieren und Decodieren Ausserdem kann das Programm einzelne SMS per GSM Modem senden und empfangen t PDUSpy 1 0 0 268 Al x UDH options Misc options get PDU Decode PDU settings select addresses use SMSC V SMSC is configured in MS destination address TP DA TON and NPI for destination ba Unknown y ISDN Telephone E 164 E y M data coding scheme TP DCS E j I Text is compressed TS GSM 03 42 coding group message has a message class General coding ind i Class 1 ME specific Alphabet used is 7 bit Text C 8bit Data C 16 bit UC52 C reserved M enter message text data enter message text D0 48 1 interpret input as text La create send amp save C hexadecimal data Programmierer k nnen mit PDU Spy Fehler in ihren Programmen aufsp re
127. der Option I lassen Sie sich nur die Dateinamen anzeigen in denen das gesuchte Wort gefunden wurde Sie k nnen also auch mehrere Dateinamen als Argument angeben Mit der Option v lassen Sie sich alle Zeilen anzeigen in denen das gesucht Wort nicht vorkommt Was genau regul re Ausdr cke sind erfahren Sie im n chsten Kapitel Seite 145 SMS Anwendungen 4 9 15 5 Regul re Ausdr cke Regul re Ausdr cke sind Suchbegriffe nach denen in Textengesucht werden kann Sie sind aber nicht nur auf einfache W rter beschr nkt Regul re Ausdr cke werden bei der Shell Script Programmierung oft zusammen mit den Befehlen sed und grep benutzt Ich m chte Ihnen einige n tzliche regul re Ausdr cke am Beispiel des grep Befehls zeigen sie funktionieren aber auch genau so als Suchwort beim Befehl sed sucht nach dem entsprechenden Buchstaben ist der Zeilenanfang ist das Zeilenende ist ein Wortanfang ist ein Wortende ist ein beliebiges Zeichen sucht nach einem Buchstaben a b oder c sucht nach einem Buchstaben von abis z sucht nach keinem oder beliebig vielen a sucht nach mindestens einem oder mehr a nur egrep ist eine Oder Verkn pfung nur egrep verwendet man zum Gruppieren nur egrep Achtung Die letzten drei Ausdr cke kennt nur der egrep Befehl eine erweiterte Version von grep Wenn Sie nach einem Zeichen suchen wollen dass in grep oder egrep eine beson
128. dere Funktion hat m ssen Sie ein voranstellen z B sucht nach dem Punkt und nicht nach irgend ein beliebiges Zeichen Legen Sie sich die Textdatei test txt an mit diesem Inhalt an Im winter kommt der Schnee Ich singe gerne Lieder ganz laut wohin gehst Du Der Mann sieht merkw rdig aus Mein Name ist Dr Irene Meier Ihr Name ist Frau Dr Dr Liebig Brrrrrrrr ist mir kalt Beim n chsten Ton ist es 08 23 56 B ren sind liebe Tiere Bumm das hat gekracht Brrrrumm und noch einer Auf diese Textdatei wollen wir nun einige regul re Ausdr cke anwenden grep i test txt Zeigt alle Zeilen an in denen ein vorkommt Aber grep l test txt zeigt nur die Zeilen an die mit einem gro en beginnen Der Unterschied ist dass die Zeile mit Frau Dr Irene nur vom ersten grep Befehl gefunden wird grep test txt zeigt alle Zeilen an die mit einem Punkt enden Die Zeile mit dem Fragezeichen f llt also heraus grep test txt zeigt alle Zeilen mit einer Uhrzeit an grep er gt test txt zeigt alle Zeilen an in denen ein Wort vorkommt dass mit er endet grep lt gt test txt zeigt alle Zeilen an in denen ein Wort mit vier Buchstaben steht grep Br umm test txt zeigt alle Zeilen an in denen ein Wort mit B beginnt dann kommen beliebig viele r vielleicht auch keins und dann umm Also ist die Ausgabe Seite 146 SMS Anwendungen Bumm das hat gekracht Brrrrumm und noch einer
129. die Shell den Text in a in einzelne Worte zerlegt und alle berfl ssigen Leerzeichen wegschneidet Genau das wollen wir ja ausnahmsweise so haben Seite 147 SMS Anwendungen 4 10 Awk Programmierung Awk ist eine Erg nzung zur Shell Scriptsprache Die St rken von Awk liegen darin Tabellarische Textdateien einzulesen und zu verarbeiten Awk wird oft verwendet um Textdateien zu konvertieren Werte zu berechnen und Reports zu generieren Awk gibt es f r fast jedes Betriebssystem Es ist auf fast allen Unix Systemen standardm ig installiert Unter Solaris verwenden Sie bitte die neue Version nawk Die ltere Version kann nicht alles was ich hier beschreibe und sie meldet Fehler meisten in nur schwer verst ndlicher Form Betrachten Sie diese Anleitung als Einstiegshilfe Awk hat viele Features die ein eigenes Buch Wert sind Ich m chte Ihnen hier nur die wichtigsten zeigen Die Homepage von gnu awk bietet ein umfangreiches englisches Buch im HTML Format kostenlos zum Download oder online Lesen an http www gnu org software gawk gawk html 4 10 1 Wie man awk startet Awk ben tigt immer ein Script und eine oder mehrere Quelldateien Die folgenden drei Befehle sind gleichwertig awk f Scriptdatei Textdatei awk f Scriptdatei lt Textdatei cat Textdatei awk f Scriptdatei Mehrere Textdateien gibt man so an awk f Scriptdatei Textdateil Textdatei2 Textdatei3 Wenn das Script sehr klein ist kann man es auch al
130. dministration 1 e Solaris Administration 2 e Solaris Netzwerkadministration Shell Programmierung f r Systemadministratoren In diesen Schulungen lernt der EDV Techniker alle wesentlichen Befehle und Konfigurationsdateien kennen mit denen man das Betriebssystem Solaris administriert Mein Fazit SUN ist teuer aber richtig gut Entscheiden Sie gem ss Ihren Priorit ten Seite 21 SMS Anwendungen 2 5 3 Linux Linux ist ein Betriebssystem von Linus Torvalds und unz hligen weiteren Entwicklern Der Name ist eine Kombination aus Unix und Linus dem Entwickler des Betriebssystem Kerns Linux ist ein Unix hnliches Betriebssystem f r PC Die Entwicklung begann zu DOS Zeiten und geht seit dem rasch voran Da Linux von Anfang an als Multi Tasking Betriebssystem mit Netzwerk ausgelegt war ist es in vielen Punkten etwas Leistungsst rker als Windows Der Name Linux bezeichnet eigentlich nur den Betriebssystem Kern Eine Unzahl von professionellen und Hobbyprogrammierern entwickeln f r Linux immer mehr Werkzeuge Treiber und Anwendungsprogramme Einige Firmen sammeln diese Programme zusammen mit dem Linux Kern und f gen ein Installationsprogramm hinzu Jede Linux Installation basiert auf einer solchen Linux Distribution und daher hat sich die Bedeutung des Wortes Linux schleichend ver ndert Die Distributionen unterscheiden sich im Umfang und Support Angebot Ich empfehle Distributionen von RedHat und SuSE RedHat ist da
131. do while Schleife Auch hier wird der Programmabschnitt wiederholt solange der Ausdruck wahr ist Aber dieses mal wird erst nach jeden Durchlauf gepr ft ob der Ausdruck noch wahr ist do Befehle Befehle Befehle while a lt 3 4 8 6 4 for Die for Schleife dient dem Zweck einen Programmabschnitt mehrmals zu wiederholen und zugleich die Wiederholungen zu z hlen for i 1 i lt 6 i i 1 print i ist jetzt i lt br gt Diese Schleife erzeugt die Bildschrimausgabe ist jetzt ist jetzt ist jetzt ist jetzt ist jetzt ist jetzt H H H H H H N UBPwWwMNH Die Schleife wurde 6 mal ausgef hrt Dabei wurde der Schleifenz hler von 1 bis 6 hochgez hlt Hinter for m ssen Sie drei Ausdr cke angeben die gemeinsam in Klammern eingeschlossen sind und durch Semikolons getrennt sind for Initialisierung Ausdruck Veraenderung Der Initialisierungs Befehl weist der Z hlvariablen einen Startwert zu Der Ausdruck pr ft vor jeder Wiederholung ob die Schleife nochmal ausgef hrt werden soll Wenn der Ausdruck nicht mehr wahr ist wird die Schleife nicht nocheinmal wiederholt Der Ver nderungs Befehl dient dem Zweck die Z hlvariable NACH jedem Schleifendurchlauf zu ver ndern Meistens will man bei jeder Schleifenwiederholung 1 addieren Die for Schleife ist genaugenommen nur eine andere Schreibweise f r die while Schleife for i 1 i lt 6 i i 1 Befehle ist identisch mit i 1 wh
132. doppelte Anf hrungsstriche ausgeben wollen Print gibt einfach nur Text aus Mit printf k nnen Sie Werte in formatierter Form ausgeben was besonders in Kombination mit Variablen n tzlich ist tag 1 monat 4 jahr 2003 printf Das Datum ist d d d tag fmonat jahr Das Datum ist 1 4 2003 Printf erwartet als ersten Parameter eine Zeichenkette die ein oder mehrere Platzhalten enth lt Alle weiteren Parameter sind die Werte die anstelle der Platzhalter ausgegeben werden Gebr uchliche Platzhalter sind e d Dezimalzahl e i ebenfalls Dezimalzahl e fFliesskommazahl e s Zeichenkette e x Hexadezimalzahl mit Kleinbuchstaben X Hexadezmalzahl mit gro buchstaben Wenn Sie das Zeichen ausgeben wollen schreiben Sie es einfach doppelt dann wird es nicht ungewollt als Platzhalter betrachtet Wenn Sie dem Platzhalter eine Zahl voranstellen die mit O beginnt wird der Wert entsprechend breit rechtsb ndig ausgegeben Zu gro e Zahlen werden in voller L nge ausgegeben tag 1 monat 4 jahr 2003 printf Das Datum ist 02d 02d 04 d tag fmonat jahr Das Datum ist 01 04 2003 Bei Fliesskommazahlen geben Sie die L nge f r die Vor und Nachkommastellen an zahl1 138 45865 zahl2 1 2 printf Die Zahl1 ist 02 2f lt br gt zahl1 printf Die Zahl2 ist 02 2f zahl2 Seite 106 SMS Anwendungen Die Zahll ist 138 45 Die Zah12 ist 01 20 Vor dem Dezimalpunkt we
133. e apefel 36 fruechte birnen 20 fruechte kirschen 340 for name in fruechte print Wir haben fruechte name name Arrays kann man sehr gut gebrauchen wenn man die Anzahl von Fehlercodes in einer Protokolldatei z hlen m chte Angenommen die Protokolldatei hat dieses Format 05 04 2005 12 38 Error 12 05 04 2005 12 39 Trying to read configuration file 05 04 2005 12 55 Error 18 05 04 2005 12 58 Starting Internet communication 05 04 2005 12 59 Error 17 Dann k nnen Sie mit dem folgenden Awk Script die H ufigkeit der einzelnen Fehlercodes z hlen Error errors 4 END for code in errors print Fehlercode code wurde errors code mal gez hlt Seite 157 SMS Anwendungen 4 10 16 Eingebaute Funktionen Awk hat viele eingebaute Funktionen Die gebr uchlichsten numerischen Funktionen sind diese Rundet die Zahl x ab Nat rlicher Logarithmus von x Nat rlicher Exponent von x Sinus von x in radians Cosinus von x in radians Zufallszahl zwischen O und 1 Initialisiert den Zufallszahlengenerator Dieser Befehl sollte einmal in der BEGIN Bedingung jedes Programmes verwendet werden das rand benutzt Viel h ufiger werden Sie Zeichenketten Funktionen verwenden Gibt den Text s in Kleinbuchstaben aus Gibt den Text s in Gro buchstaben aus L nge der Zeichenkette Gibt einen Teil der Zeichenkette s zur ck Der Teil beginnt bei
134. e Angabe in der Kurzmitteilung fehlt Das sieht dann so aus 00 00 00 00 00 00 Die SMS Server Tools verwenden diese Darstellungsart weil die MySQL Datenbank genau die selbe Darstellung f r unbekannte Datum Uhrzeit Felder verwendet Seite 187 SMS Anwendungen 5 7 Modemauswahl In diesem Kapitel m chte ich Ihnen bei der Wahl eines geeigneten GSM Modems helfen Die am h ufigste gestellte Frage ber die SMS Server Tools lautet Welches Modem empfehlen Sie Die Antwort auf diese Frage ist sehr einfach denn es gibt nicht viele GSM Modems auf dem Markt Alle Ger te der Marke Falcom mit serieller Schnittstelle haben sich als zuverl ssig und einwandfrei herausgestellt Als die Entwicklung der SMS Server Tools begann gab es nur ein einziges Falcom Modem das Modell A1 Inzwischen hat Falcom viele weitere Produkte im Angebot Vom A1 bis zum Samba waren bisher alle Modelle einwandfrei geeignet so da ich davon ausgehe da auch k nftige Modelle einwandfrei geeignet sein werden Das Falcom A2D und A3D kann mit einer GPS Antenne ausgestattet werden Die Alarm Firmware erm glicht einen Betrieb ohne Computer und sendet Alarme sowie GPS Positionen als SMS Bitte benutzen Sie keine Handies als Modem in kommerziellen SMS Anwendungen Zum einen k nnen Sie diese nicht ferngesteuert z B durch das LAN einschalten Ausserdem sind Handies nicht f r den Dauerbetrieb in automatischen Anwendungen gedacht Die Zuverl ssigkeit der Ger te i
135. e Bedarf f r mehr Modems haben m ssen Sie die Quelltexte der SMS Server Tools modifizieren und das Programm erneut compilieren und installieren Praktischerweise brauchen Sie dazu nur eine einzige Datei zu ndern und zwar die Datei src smsd_cfg h define PROVIDER 16 define DEVICES 32 define NUMS 16 Hier finden Sie die Begrenzungen f r die Anzahl der Netzanbieter und Warteschlangen die Anzahl der Modems und die Anzahl der Ortsvorwahlen pro Netzanbieter ndern Sie die z B Anzahl der Devices auf 50 dann k nnen Sie bis zu 50 Modems anschliessen Der PROVIDER Wert bestimmt die Maximale Anzahl von Netzanbietern und Warteschlangen Seite 211 SMS Anwendungen 6 4 Eine SMS an mehrere Empfanger Viele Anwender fragen nach ob man eine SM an mehrere Empf nger zugleich senden kann Dies ist nicht m glich weil das bertragungsprotokoll von Kurzmitteilungen nur einen Empf nger pro Nachricht zul sst Realisierbar ist allerdings dass Sie nur eine SMS Datei anlegen die von den SMS Server Tools an mehrere Empf nger gesendet wird Sie brauchen dazu einen Checkhandler der die betroffenen SMS Datei in mehrere einzelne Dateien zerlegt Eine SMS Datei mit mehreren Empf ngern sieht so aus From Stefan To 491720000001 To 491720000002 To 491720000003 Hallo Test Wenn Sie diese Datei ganz normal senden w rden w rde smsd nur die letzte aufgef hrte Rufnummer verwenden und die Nachricht dorthin senden Das folgende
136. e Variable umleiten um den Inhalt der Textdatei in die Variable zu bekommen Variable cat test txt Wenn Sie den Dateinamen weglassen liest cat von der Tastatur bis Sie lt Strg D gt dr cken Variable cat Seite 142 SMS Anwendungen 4 9 15 2 cut Der Befehl cut liest von der Eingabe zeilenweise und schneidet einen bestimmten Teil davon heraus Sie k nnen w hlen zwischen Die Zeichen im Bereich Die Spalten im Bereich Legt das Trennzeichen f r Spalten fest Die Bereichsangabe k nnen Sie unterschiedlich schreiben Nur das dritte Zeichen oder die dritte Spalte Die Zeichen oder Spalten drei bis f nf Die Zeichen vom Beginn bis f nf Die Zeichen an Position 1 3 und 5 Wenn Sie dem cut Befehl einen Dateinamen bergeben liest er aus der Datei ansonsten liest er von der Tastatur bis Sie lt Strg D gt dr cken Nat rlich k nenn Sie sowohl die Eingabe als auch die Ausgabe mit den Pfeilen gt lt und dem Pipe Zeichen umleiten Ein paar Beispiele cut c 3 5 Hallihallo lt Strg D gt Ergibt die Ausgabe lli Angenommen Sie haben eine Textdatei mit diesem Inhalt Marius Mariechen Liesa Robert und Sie geben dann cut c 1 3 test txt ein Dann bekommen Sie diese Ausgabe Mar Mar Lie Rob Die Optionen f und d benutzt man meistens kombiniert cut f 2 4 d Eins Zwei Drei Vier F nf lt Strg D gt Dies erzeugt die Ausgabe Zwei Vier Sie haben also
137. e anderen Befehle die Sie ber die St rung informieren self test sh Seite 206 SMS Anwendungen bin sh out var spool sms outgoing l test in var spool sms self test 1 in while true do echo To 2 gt Sout echo Provider 1 gt gt out echo gt gt out echo SELF TEST MEssAGE gt gt out sleep 3600 found 1s A in if S ound then rm in else echo Subject 1 test failed sendmail myname mydomain fi done Geben Sie anstelle von myname mydomain die eMailadresse des Systemadministrators ein das sind Sie vermutlich selbst Sie haben die SMS Server Tools nun um ein Testprogramm erweitert dass jeden Ausfall nach sp testens einer Stunde erkennt und per eMail anzeigt Als Nebenwirkung zeigt das Programm auch an wenn ihr System zu wenig Modems hat und den Versand von SM nicht mehr zeitgerecht bew ltigen kann Denn wenn der Versand nicht schnell genug vonstatten geht sammeln sich immer mehr Nachrichten in den Netzbetreiber Warteschlangen Die Warteschlangen f r die Testnachrichten haben Sie in der Konfigurationsdatei als letzte angegeben Das bedeutet dass Testnachrichten nur gesendet werden wenn alle anderen Warteschlangen leer sind Bei einem voll ausgelastetem System tritt dieser Fall niemals ein die Testnachrichten werden dann nicht gesendet Demzufolge alarmiert das Programm self test sh dass Tests fehlschlagen Eine Fehlermeldung vom Testprogramm kann also auf mehrere Prob
138. e dringend davon ab Cookies zu verwenden weil immer mehr Internet User diese Funktion im Webbrowser sperren und sie somit nicht sicher zur Verf gung steht 4 8 10 SQL Abfragen SQL Abfragen lassen sich in PHP Programmen sehr leicht durchf hren Das folgende Beispiel zeigt Ihnen wie Sie einen select Befehl ausf hren und das Ergebnis als HTML Tabelle anzeigen test7 php lt html gt lt body gt Dies ist das Ergebnis einer SQL Abfrage lt br gt lt php mysql_connect localhost root mein_passwort Sresult mysql_db query datenbank select from tabelle if Sresult S Sreihen mysql_num_rows result spalten mysql_num fields result print lt table border 1 gt n print t SECESNI for i 0 i lt spalten i Sname mysql_field_name result i printf lt th gt s lt th gt n name print lt ter gt nN for j 0 j lt reihen j print lt er n Sreihe mysql_fetch_row result for i 0 i lt spalten i printt lt td gt s lt td gt Ain reihe i print lt tr gt n print lt table gt n else printf Es ist ein Fehler aufgetreten lt br gt s mysql_error 2 gt lt body gt lt html gt Nun m chte ich Ihnen dieses Programm Zeile f r Zeile erkl ren lt html gt lt body gt Dies ist das Ergebnis einer SQL Abfrage lt br gt Dies ist der beginn des HTML Codes Zuerst geben wir einen festen Text als
139. ederwertigste Bit zuerst Die bertragung eines einzelnen A sieht so aus Die 0 wird als 12V bertragen und die 1 als 12V Wenn die Schnittstelle gerade keine Zeichen bertr gt hier durch Punkte dargestellt steht die Leitung auf 12V Die bertragung eines einzelnen A sieht dann so aus 4 Zur bertragung der Zeichen gibt es an jedem seriellen Anschluss zwei Leitungen Die Leitung TxD sendet Daten und die Leitung RxD empf ngt Daten Bei einer solchen zwei Draht Verbindung fehlt allerdings die M glichkeit den Datenfluss Handshake zu steuern Der sendende Computer weiss gar nicht wann der Empf nger berhaupt empfangsbereit ist Zu diesem Zweck hat man zwei Zeichen reserviert die zur Signalisierung verwendet werden Sie heissen Xon und Xoff Zur Steuerung von Modems hat man sich allerdings entschieden noch ein paar Steuerleitungen hinzuzuf gen damit die Datenleitungen jedes beliebige Zeichen bertragen k nnen und die Programmierung einfach bleibt Diese Leitungen nennt man Hardware Handshake Leitungen e Mit CTS zeigt das Modem an dass es empfangsbereit ist Mit DTR zeigt das Modem an dass es eingeschaltet ist Mit DCD zeigt das Modem an dass der es eine Verbindung zu einer Gegenstelle aufgebaut hat Nicht alle SUN Computer haben eine DCD Leitung aber das ist f r SMS Anwendungen egal weil wir diese Leitung ohnehin nicht brauchen Mit DSR zeigt der Computer an dass der serie
140. efehl2 ausgef hrt Wenn Befehl2 erfolgreich war wir Programmabschnitt2 ausgef hrt Amsonsten wird Programmabschnitt3 ausgef hrt Der elif Abschnitt kann mehrmals wiederholt werden Ein konkretes Beispiel test12 sh bin sh if rm tmp test txt then echo Das L schen war erfolgreich echo Alles Ok else echo Fehler echo Die Datei konnte nicht gel scht werden fi Und nun folgt ein Beispiel f r die erweiterte Version test13 sh bin sh if rm tmp test txt then echo Das L schen von test txt war erfolgreich elif rm tmp test2 txt then echo Das L schen von test2 txt war erfolgreich elif rm tmp test3 txt then echo Das L schen von test3 txt war erfolgreich else echo Keine der drei Dateien konnte gel scht werden fi Manche Leute schreiben das Schl sselwort then lieber in eine eigene Zeile dann entf llt das Semikolon bin sh if rm tmp test txt then echo Das L schen war erfolgreich fi Seite 131 SMS Anwendungen 4 9 9 2 Vergleiche Wenn Sie einen Programmabschnitt bedingt ausf hren wollen m chten Sie dies oft tun nachdem Sie zwei Texte oder Zahlen miteinander verglichen haben Dazu benutzen Sie den test Befehl oder die eckigen Klammern Eine Manual Page zu den eckigen Klammern werden sie nicht finden denn dahinter steckt in Wirklichkeit der test Befehl Hallo Hallo echo Liefert den Wert 0 weil der Vergleich erfolgreich ist Dieser Befehl ist identi
141. eife abgeguckt Sie ist haupts chlich f r Schleifen gedacht bei denen ein Wert hoch oder runter gez hlt wird for Vorbereitung Bedingung Schritt Befehl Das Beispiel aus dem Vorherigen Kapitel k nnte auch so aussehen for a 0 a lt 10 a print Die Variable a ist jetzt a In Zusammenhang mit Arrays gibt es noch eine weitere Form der for Schleife for Indexvariable in Arrayname Befehl Auf diese Variante gehe ich in einem sp teren Kapitel ein Seite 154 SMS Anwendungen 4 10 11 Break und continue Mit dem Befehl break k nnen Sie eine Schleife abbrechen a 0 while a lt 10 print Die Variable a ist jetzt a att if a gt 5 break Diese Schleife l uft nicht bis zur 9 durch sondern nur bis zur 5 weil dann der break Befehl ausgef hrt wird Break wird verwendet um schleifen fr hzeitig abzubrechen Continue bricht den aktuellen Schleifendurchlauf ab und f hrt die n chste Schleifenwiederholung durch a 0 while a lt 10 print Die Variable a ist jetzt a a if a gt 5 continue print a ist noch nicht gr er als 5 4 10 12 Next und exit Im Gegensatz zu break und continue beeinflussen diese beiden Befehle den Ablauf des gesamten awk Scriptes Next stoppt die Bearbeitung der aktuellen Textzeile Awk liest die n chste Textzeile ein und f hrt die Befehle von oben nach unten f r diese neue Zeile aus Exit bricht das awk Script sofort ab Sie k nnen hinter exit e
142. eile haben sonst enth lt Ihre Zieldatei zwei solche Zeilen Smsd erkennt immer nur die letzte Empf ngernummer was dann die falsche w re 7 6 1 Content bereitstellen Sie wissen nun wie Sie Betreiberlogos korrekt speichern so dass Sie sie an andere Empf nger senden k nnen Sie wissen wie Sie die Empf ngernummer in die SMS Datei einf gen k nnen Nun legen Sie sich ein Verzeichnis an in dem Sie alle Dateien die sie anbieten m chten zusammenstellen Verwenden Sie der Einfachheit halber Nummern als Dateiname Achten Sie bei Betreiberlogos darauf dass der Netzbetreibername Teil des Dateinamens ist denn jeder Betreiber ben tigt eine eigene SMS Datei Sie k nnten die Daten z B in var sms content speichern Beispiel Klingelton 1 Klingelton 2 Klingelton 3 Betreiber Logo 1 f r D1 Betreiber Logo 1 f r D2 Betreiber Logo 1 f r EPLUS Betreiber Logo 2 f r D1 Betreiber Logo 2 f r D2 Betreiber Logo 2 f r EPLUS Betreiber Logo 3 f r D1 Betreiber Logo 3 f r D2 Betreiber Logo 3 f r EPLUS Schlauer Spruch 1 Schlauer Spruch 2 Schlauer Spruch 3 Alle diese Dateien sind SMS Dateien mit einem Vorspann ohne To Zeile Wenn Ihre Kunden nun eine Datei bestellen sollen Sie Ihnen einfach eine SM mit dem dem Dateinamen schicken In einem Katalog oder auf einer Webseite bieten Sie die Dateien entsprechend an Seite 225 SMS Anwendungen Um mit dem Dienst G
143. einen Schwachpunkt im System dar daher sollte er mit gr sster Sorgfalt administriert werden und auch nicht f r andere Zwecke missbraucht werden Je weniger man am Fileserver ndert und je weniger Funktionen er hat umso zuverl ssiger l uft er Das Gesamte System ist absichtlich ohne Hubs oder Switche aufgebaut weil ein defekter Switch zu einem Totalausfall f hren w rde Stattdessen werden viele einzelne Netzwerk Kabel und Netzwerk Anschl sse verwendet Bei obigen Aufbau darf bis auf den Fileserver jede beliebige Komponente ausfallen ohne dass Sie einen Totalausfall bekommen Seite 34 SMS Anwendungen Beide SMS Server dienen nebenbei auch als Webserver Damit betreiben Sie Webseiten und FTP Zug nge f r Ihre Kunden Sie sollten identisch konfiguriert werden bis auf die IP Adresse damit Ihre Kunden wahlweise den ersten oder zweiten verwenden k nnen Es gibt Loadbalancer und Proxy Server die alle Web Anfragen automatisch zwischen den beiden Webservern verteilen so dass Sie den Kunden nur eine IP Adresse und URL nennen m ssen In diesem Beispiel wird davon kein Gebrauch gemacht Wenn Sie Ihre Webseiten umgestalten oder die SMS Anwendung ver ndern k nnen Sie dies in Ruhe auf einem der beiden SMS Server tun w hrend Ihre Kunden den anderen SMS Server f r den Live Betrieb nutzen Der SMS Server den Sie f r Tests benutzen kann in dieser Zeit z B eine andere IP Adresse und eigene Warteschlangen Verzeichnisse bekommen s
144. eitung einer Befehlsliste hinaus kommt ist es in Shell Scripten blich Kontrollstrukturen zu benutzen also if Befehle While Schleifen For Schleifen usw In diesem Kapitel zeige ich Ihnen wie Sie Shell Scripte schreiben Auch unter Windows k nnen Sie dieses Kapitel anwenden sofern Sie das CygWin Paket installiert haben Unter Unix gibt es zahlreiche unterschiedliche Shells die alle ihre eigene Programmiersprache haben In diesem Buch beziehe ich mich auf die Bourne Shell die zum Standardumfang jedes Unix Betriebssystems geh rt Bitte nehmen Sie zur Kenntnis dass Sie alle einzelnen Befehle auch manuell an der Eingabeaufforderung eingeben k nnen Sie m ssen also nicht jedes Beispiel abschreiben und in eine Datei speichern k nnen Sie aber wenn Sie m chten 4 9 1 Das erste Shell Script Speichern Sie sich das folgende Script als test1 sh ab bin sh Das ist das erste Beispielscript testl sh echo Hallo echo e Heute ist der c date d Sm Sy Dieses Script zeigt das aktuelle Datum an Damit Sie es ausf hren k nnen m ssen Sie den Befehl chmod atx test1 sh eingeben sonst wird es von der Shell nicht als ausf hrbares Script erkannt Geben Sie jetzt test1 sh ein um das Script auszuf hren Die erste Zeile sollten Sie in jedes Script exakt wie oben schreiben Sie teilt der Shell die Ihre Eingabeaufforderung darstellt mit welche Shell das Script ausf hren soll bin sh ist die Borune Shell Wenn Sie diese Zeile weg
145. eld zu verdienen lassen Sie sich von allen Netzbetreibern jeweils eine f nfstellige SMS Nummer geben Ihre Kunden bezahlen f r das Senden von SM an diese Nummern erh hte Geb hren von denen die Netzbetreiber einen lukrativen Anteil an Sie abtreten 7 6 2 Das Script Sie ben tigen auf Ihrem Server mit den SMS Server Tools nicht nur die gerade genannten SMS Dateien sondern nat rlich auch ein Script dass die Bestellanforderungen bearbeitet Richten Sie sich ein SQL Protokoll gem ss Kapitel 5 13 ein um Abrechnungen und Reklamationen pr fen zu k nnen Aktivieren Sie Statusreports report yes Das Script installieren Sie als Ereignisprogramm eventhandler ein Nennen Sie es order sh bin sh if 1 RECEIVED then exit fi from formail zx From lt 2 text formail I lt 2 text echo text if f var sms content text then file mktemp var spool sms outgoing send XXXXXX echo To from gt file cat var sms content text gt gt file else file mktemp var spool sms outgoing send XXXXXX echo To from gt file echo gt gt file echo Sorry falsche Bestellnummer text gt gt file fi Die Zeile text echo text kommt Ihnen vielleicht sinnlos vor Sie hat aber sehr wohl einen Sinn Auf diese Weise entfernt das Script Leerzeichen um die Bestellnummer herum Anschliessen kann in der if Abfrage gepr ft werden ob eine gleichnamige Datei existiert Wen
146. en 4 9 15 4 grep Der grep Befehl liest die Eingabe zeilenweise und gibt davon nur die Zeilen wieder aus in denen ein gesuchtes Wort genauer regul rer Ausdruck vorkommt Die Eingabe ist wie gewohnt wahlweise eine Datei oder die Tastatur sie l sst sich auch umleiten Ebenso kann man die Ausgabe umleiten Wenn Sie von der Tastatur eingeben beenden Sie den Vorgang durch die Tastenkombination lt Strg D gt Angenommen die haben eine Textdatei mit diesem Inhalt test txt Im Winter kommt der Schnee Im Sommer ist es daf r zu Warm Ich singe gerne Lieder ganz laut wohin gehst Du Der Mann sieht merkw rdig aus Wenn Sie jetzt grep der test txt eingeben erscheint diese Ausgabe Im winter kommt der Schnee Ich singe gerne Lieder ganz laut Die zweite Zeile erscheint deswegen weil in Lieder das Wort der enthalten ist Die Zeile Der Mann erscheint nicht denn das D ist dort gro geschrieben Mit der Option i sorgen Sie daf r dass nicht zwischen gro en und kleinen Buchstaben unterschieden wird grep i der test txt Im Winter kommt der Schnee Ich singe gerne Lieder ganz laut Der Mann sieht merkw rdig aus Mit der Option c z hlen Sie einfach nur die Anzahl der gefunden Zeilen Beispiel test36 sh bin sh Anzahl grep c der test txt 1f Anzahl gt 2 then echo Es wurden mehr als 2 Zeilen gez hlt n mlich Anzahl else echo Es wurden weniger oder genau 2 Zeilen gez hlt EN Mit
147. en arbeiten Sie immer mit der ganzen Tabelle jeder Reihe Bei gro en Tabellen m chten Sie sicher nicht immer alle Spalten auf einmal sehen schliesslich ist Ihr Bildschirm nicht unendlich gro Mit selektieren Sie alle Spalten Stattdessen k nnen Sie auch die Spalten angeben die Sie sehen m chten mysql gt select id name ort from anschriften id name Lot A 1 Mustermann Irgendwo 2 Musterfrau Wasserdorf 3 Mustermann Irgendwo 3 rows in set 0 00 sec Bei der Eingabe von SQL Befehlen sollten Sie Zeichenketten und Datumswerte immer zwischen doppelte Anf hrungsstriche schreiben und Zahlen sollten Sie immer ohne Anf hrungsstriche schreiben Die Beispiele der beiden letzten Kapitel haben Ihnen dies vorgef hrt Bevor Sie jetzt lange ber die Postleitzahl nachgr beln Die Postleitzahl ist eine Zeichenkette und keine Zahl weil die entsprechende Spalte der Tabelle so angelegt wurde char 5 MySQL kann Zahlen auch automatisch in Zeichenketten umwandeln und umgekehrt aber nicht in jedem Fall Durch die korrekte Verwendung von doppelten Anf hrungsstrichen um Zeichenketten vermeiden Sie Fehlermeldungen und Konvertierungsfehler Seite 94 SMS Anwendungen 4 7 7 Tabellen Verkn pfen Nun m chte ich Ihnen zeigen wie man zwei Tabellen miteinander verkn pft Da wir bisher nur drei Adressen eingegeben haben a
148. en tun Sie das so update anschriften set plz NULL where id 3 Seite 96 SMS Anwendungen 4 7 9 Weitere Schl sselw rter f r Select Wenn Sie gro e Tabellen haben sind die Schl sselw rter order by und limit f r Sie interessant Mit order by sortieren Sie die Ausgabe Beispiel mysql gt select from anschriften order by plz id name vorname strasse plz DEE 3 Mustermann Sohnemann Bachstrasse 13 NULL Irgendwo 1 Mustermann Markus Bachstrasse 13 11111 Irgendwo 2 Musterfrau Michaela NULL 22222 Wasserdorf 3 rows in set 0 00 sec Die Ausgabe wird so anhand der Postleitzahl sortiert ausgegeben Benutzen Sie diese Funktion nur wenn Sie Ihnen wirklich n tz ist denn das Sortieren kann bei vielen Reihen lange dauern und viel Arbeitsspeicher erfordern R ckw rts sortieren geht nat rlich auch und zwar so select from anschriften order by ort desc In Zusammenhang mit sortieren Ausgaben macht es manchmal Sinn die Ausgabe auf weniger Reihen zu beschr nken Wenn Sie zum Beispiel die Person mit der kleinsten Postleitzahl sehen wollen geben Sie ein mysql gt select from anschriften order by plz_ limit 1
149. en Programme werden von smsd als Unterprogramme benutzt Sie werden die Unterprogramme also niemals direkt benutzen Die SMS Server Tools beinhalten ein Start Stop Script welches Sie benutzen k nnen um das Programm korrekt zu starten und zu stoppen Bei der Installation wird es als etc init d sms oder sbin init d sms installiert je nach Betriebssystem Version Zu Starten geben Sie ein letclinit d sms start Dabei werden zuerst alle alten Sperrdateien gel scht und dann wird smsd im Hintergrund gestartet Mit dem Befehl ps ef grep sms k nnen Sie sich davon berzeugen Zum Stoppen geben Sie ein letclinit d sms stop Das Script findet die Prozessnummer von smsd heraus und beendet das Programm dann mittels kill Befehl Die folgenden Zeilen die ich etwas nach rechts einger ckt habe gelten nur f r Unix also Solaris und Linux Wenn Sie die SMS Server Tools automatisch beim Hochfahren des Servers starten m chten legen Sie sich eine Verkn pfung im entsprechenden Runlevel Verzeichnis an Die Runlevel Verzeichnisse heissen etc init d rcO d bis rc6 d Bei manchen Linux Versionen ist es sbin init d rcO d bis rc6 d Nun m ssen Sie zuerst herausfinden welcher Runlevel der richtige ist schliesslich stehen 7 zur Auswahl Im Kapitel 4 2 hatte ich bereits erw hnt wie das geht ich m chte es dennoch an dieser Stelle noch einmal wiederholen Geben den Befehl grep initdefault etc inittab ein und merken Sie sich die Zahl zwische
150. en Rechner mit root Passwort benutzen Wie Sie weitere User anlegen erfahren Sie in einem sp teren Kapitel Seite 66 SMS Anwendungen 4 2 3 4 Apache PHP und MySQL Testen Testen Sie Ihren Webserver nun bitte Starten Sie einen WebBrowser auf dem Webserver und geben Sie in die URL Zeile ein http localhost Starten Sie einen WebBrowser auf einem anderen Computer und geben Sie in die URL zeile ein http ihr_webserver_name Sie sollten in beiden F llen eine Testseite von Apache zu sehen bekommen Nun sollten Sie die PHP Funktion und die Anbindung an die MySQL Datenbank testen Finden Sie heraus wo das htdocs Verzeichnis liegt find name htdocs Erstellen Sie in diesem Verzeichnis die Datei test php mit folgendem Inhalt lt html gt lt body gt Das ist HTML Text lt br gt lt php print Das ist PHP Text lt br gt print Es folgt eine MySQL Abfrage lt br gt mysql_connect localhost root Mein Passwort mysql select _db mysql Sergebnis mysql query select user host password from user for nr 1 Sreihe mysql fetch row Sergebnis nr print Sreihe 0 Sreihe 1 reihe 2 lt br gt gt lt body gt lt html gt Verwenden Sie beim mysql_connect Befehl den Namen Ihres MySQL Servers und das richtige Passwort Wenn der Webserver zugleich MySQL Server ist dann ist localhost als Name einzugeben Stellen Sie sicher da diese Datei ausreichende Lese Rechte hat chmod atr
151. en erheblichen Einfluss auf die Stabilit t eines Systems haben Stellen Sie sich eine wilden Haufen von Ger tschaften vor die mitten im Raum auf dem Boden liegen Sie haben jetzt vermutlich schon ein Bild im Kopf wo gerade jemand dar ber f llt und zahlreiche Kabel besch digt Nat rlich w rden Sie niemals auf die Idee kommen Computer so aufzustellen Ein Professionelles System befindet sich in einem 19 Zoll Schrank Die Massangabe bezieht sich auf den Abstand der linken und rechten Tragschienen im Schrank an die Sie alle Ger te schrauben Sie k nnen Server Switche Aufstellb den und so weiter f r diese Schr nke bekommen 19 Zoll Schr nke gibt es mit durchsichtigen T ren und in abgeschirmter Variante mit Metall oder Gittert ren Sie erm glichen es Ihre Hardware mit handels blichem Montagematerial stabil und gesch tzt zu montieren Erden Sie den Schrank Nur so ist ihre Hardware vor statischen Ladungen gesch tzt Heutzutage f hren statische Ladungen zwar nur sehr selten zu einem Defekt aber sie k nnen Ihr System sehr wohl kurzzeitig lahm legen Verlegen Sie Kabel grunds tzlich in geordneten Bahnen im Doppelboden oder in Kabelkan len Stellen Sie keine Ger te lose innerhalb des Schrankes auf sondern befestigen Sie alles gut auch die Kabel Auf diese Weise verhindern Sie dass Ersch tterungen oder Bewegungen die Kabel nicht besch digen oder zu Wackelkontakten f hren Achten Sie auf ausreichende L ftung Die Lufttempe
152. end von den SMS Server Tools gesendet wird Geben Sie in das To Feld der eMail dessen Handynummer ein sowie die eMail Adresse des Users sms Beispiel To Herbert 491721234567 lt sms localhost Das Script email2sms ist Bestandteil der SMS Server Tools Sie k nnen es sich gerne ansehen um davon zu lernen Das Script ist klein und einfach gehalten Seite 217 SMS Anwendungen 7 3 2 eMail zu SMS Gateway mit entferntem Mailserver Sie ben tigen dazu einen Server mit den SMS Server Tools Fetchmail und Formail Weiterhin brauchen Sie einen Mailserver und darauf ein POP3 Postfach Diese Variante k nnen Sie auch unter Windows benutzen denn sie funktioniert ohne Sendmail Bevor Sie jetzt vergebens nach den Installationsdateien von Formail suchen nehmen Sie bitte zur Kenntnis dass Formail ein Hilfsprogramm von Procmail ist und daher in dem Programmpaket Procmail versteckt ist In Kapitel 4 5 4 habe ich Ihnen gezeigt wie Sie eMail von einem POP3 Postfach abrufen Legen Sie sich eine etc fetchmailrc Datei an die so aussieht alle in einer einzigen Zeile poll mail isis de protocol POP3 user sms pass passwort mda usr local bin email2sms Setzen Sie bitte den Namen Ihres Mailserver ein sowie den richtigen Usernamen und das richtige Passwort Setzen Sie die Zugriffsrechte auf die Datei so chmod 0710 ect fetchmailrc Starten Sie den Fetchmail D mon durch Eingabe von fetchmail f etc fetchmailrc d 300 Fetchmail r
153. enn eines von mehreren Modems ausf llt denn die restlichen Modem arbeiten fleissig weiter Um zu verhindern dass eine Nachricht von mehreren Modems gleichzeitig gesendet wird benutzt sms sogenannte Sperrdateien Lockfiles Eine Sperrdatei ist eine Datei die genau so heisst wie das SMS File es hat aber zus tzlich die Endung LOCK Die Existenz einer Sperrdatei signalisiert den anderen Programmteilen dass diese Nachricht bereits in Arbeit ist F r Neugierige schreibt sms seine Prozessnummer in die Datei Der Betriebssystem Kern gibt jedem Programm eine Prozessnummer die Sie z B mit dem ps Befehl anzeigen lassen k nnen Eine technische Funktion hat die Nummer f r sms jedoch nicht Die Lockfiles erm glichen es Ihnen auch mehrere Computer zum Versand von Kurzmitteilungen aufzustellen Alle Computer sollten dann gemeinsam auf die selben Warteschlangen zugreifen F llt ein Computer aus dann ger t Ihr System nicht ins stocken denn die anderen Computer senden weiterhin Wenn das Senden einer Kurzmitteilung trotz einer Wiederholung fehlgeschlagen ist wird die Datei in die fehlgeschlagene Warteschlange verschoben Wenn das Senden von unterschiedlichen Kurzmitteilungen durch ein Modem drei mal nacheinander fehlschl gt geht sms davon aus dass das Modem defekt ist In diesem Fall wird das Modem f r eine einstellbare Zeit z B eine Stunde blockiert Dadurch werden die verbleibenden Kurzmitteilungen ber die anderen Modems gesendet fal
154. ennamen eindeutig davon unterscheiden So kann es Ihnen nicht passieren aus Versehen eine Variable des Betriebssystems zu ver ndern Ein Beispiel Angenommen Sie schreiben aus Versehen PS1 Hallo weil Sie keine Ahnung hatten dass diese Variable vom Betriebssystem benutzt wird versuchen Sie es die Auswirkung ist harmlos aber sicher berraschend Geben Sie PS1 Hallo ein und bestaunen Sie das Ergebnis Ihre Eingabeaufforderung hat sich ver ndert Wenn Sie kleine Buchstaben verwendet h tten w re das nicht passiert Falls Sie sich eine Liste aller gerade gesetzten Shell Variablen ansehen wollen dann geben Sie einmal env more ein Einige Variablen erscheinen Ihnen sicher als n tzlich Seite 128 SMS Anwendungen 4 9 5 Ein Ausgabe Umleitung in Dateien Unter Ein Ausgabe Umleitung versteht man den Mechanismus der die Eingabe oder die Ausgabe eines Programmes in ein anderes Programm eine Datei oder eine Variable umleitet Die Eingabe ist normalerweise die Tastatur w rend f r die Ausgabe normalerweise der Bildschirm benutzt wird Doch das ist nderbar echo Hallo gt test txt Dieser Befehl zeigt nicht das Wort Hallo an sondern schreibt es in die Datei test txt Schauen Sie nach echo Fachmann gt gt test txt Dieser Befehl h ngt ein weiteres Wort an die bereits vorhandene Datei an Der doppelte Pfeil weist die Shell an keine neue Datei anzulegen sondern an die vorhandene Datei anzuh ngen falls v
155. eports empfangen zu k nnen m ssen Sie diese mit AT CNMI 2 0 0 2 1 initialisieren 2 4 2 Falcom GSM Modems Falcom Modems zeichnen sich durch beste Zuverl ssigkeit aus So wundert es nicht dass ich alle 6 FA LCO M meine eigenen GSM Anwendungen bereits vor Jahren rasch auf Falcom Ger te umgestellt hatte A pr e sobald das erste GSM Modem dieses Herstellers auf den Markt kam Falcom bietet f r jeden Anwendungsfall genau das richtige GSM Modem oder GSM Modul an Falcom hat Techniker mit denen man gut Probleme und Aufgabenstellungen besprechen kann um so das geeignete Produkt auszuw hlen Das Falcom Tango ist derzeit f r SMS Anwendungen am besten geeignet Seite 16 SMS Anwendungen Falcom Samba Initialisieren Sie das Falcom Samba mit dem Befehl ATASSMSS 1 damit Sie empfangene Kurzmitteilungen auslesen k nnen Dieser kleine USB Stecker hat keine externe Antenne und ist daher nicht an jedem Standort nutzbar Vodafone Connect Card GPRS UMTS Hergestellt von Option Diese Modemkarte hat einen internen USB Controller und einen USB2Serial Adapter Das Modem darin ist also ein serielles Modem Die Karte kann auch Unter Linux verwendet werden Laden Sie den Treiber wie fogt modprobe ohci modprobe usbserial vendor 0x0af0 product 0x5000 Das Device heisst dann dev usb ttyUSBO Seite 17 SMS Anwendungen 2 4 3 Mobiltelefone Generell sind auch Mobiltelefone f r SMS Anwendungen geeignet Jedoch hat
156. er Dateien Wenn Sie sich weitergehend zu diesem Thema informieren wollen sollten Sie sich die Spezifikationen der Bin rdaten Formate der gew nschten Handies besorgen Jeder Hersteller hat da seine eigenen Dateiformate Bin re Kurzmitteilungen d rfen maximal 140 Bytes lang sein Smsd zerlegt zu gro e Bin rdateien nicht autmatisch Eine SMS Datei mit bin rem Inhalt sieht so aus To 491721234567 Alphabet binary UDH true gs2389gnsakj92fs2ujtiegbhewqu2ir9jsdgufh3 gjerugqgh87zt243htgerugsqh 3gert3245 Die Angabe Alphabet binary teilt smsd mit dass dies eine Kurzmitteilung mit 8 Bit Inhalt sein soll Die Angabe UDH true oder UDH false legt fest wie das UDH Flag in der Kurzmitteilung eingestellt werden soll F r die SMS Server Tools und f r die SMS Zentrale hat das UDH Flag keine Bedeutung doch manche Handies verlangen explizit dass dieses Bit gesetzt oder eben nicht gesetzt sein soll Wenn Sie unsicher sind setzen Sie es auf yes denn dies ist f r die meisten Handies z B Nokia die richtige Einstellung Wenn Sie diese Angabe weglassen geht smsd automatisch von true aus Wie bei gesendeten Textnachrichten k nnen Sie auch hier weitere Angaben im Vorspann machen n mlich Absender Netzanbieter und das Flash Flag Die Bin rdaten beginnen unmittelbar hinter der Leerzeile und enden am Dateiende Seite 182 SMS Anwendungen 5 6 3 Unicode Texte senden Unicode ist ein 16 bit Zeichensatz der neben latei
157. er des Absenders Dieses Feld hat derzeit keine Funktion f r das Programm To Telefonnummer des Empf ngers im internationalen Format aber ohne das Zeichen Wenn Sie eine Nachricht an eine Servicenummer senden wollen z B um einen Klingelton zu bestellen schreiben Sie ein s davor Flash Booleanscher Wert Wenn yes dann erscheint die Nachricht sofort auf dem Display des Empf ngers Die meisten Telefone k nnen das aber leider nicht alle Solche Nachrichten werden auch Alarm SMS oder Klasse 0 SMS genannt Alphabet Zeigt dem Programm welcher Zeichensatz verwendet wurde M gliche Werte sind ISO oder Latin oder ANSI Normaler 8 Bit Zeichensatz auch Ansi oder Latin 1 genannt Alle drei Namen sind gleichwertig Wenn der Text l nger als 160 Zeichen ist kann das Programm die Nachricht automatisch aufteilen GSM 7 Bit Zeichensatz wie in der GSM Spezifikation beschrieben Allerdings mit einer Ausnahme Das Zeichen wird doch den Code 0xB7 dargestellt Wenn der Text l nger als 160 Zeichen ist kann das Programm die Nachricht automatisch aufteilen UCS oder Chinese oder Unicode UCS2 Zeichensatz maximal 70 Zeichen Alle drei Namen sind gleichwertig Der Vorspann muss immer mit einem 8 Bit Zeichensatz geschrieben werden aber der Text danach mu in diesem Fall mit einem 16 Bit Zeichensatz n mlich Unicode big endian geschrieben werden Schauen Sie mal in das Verzeichnis scripts dort werden Sie ein paar praktische Programme zur K
158. ergibt TRUE Und TRUE 88 TRUE ergibt TRUE Seite 109 SMS Anwendungen or Oder TRUE or FALSE ergibt TRUE Oder TRUE FALSE ergibt TRUE xor Exklusiv Oder TRUE xor TRUE ergibt FALSE TRUE xor FALSE ergibt TRUE Negation TRUE ergibt FALSE Der Zuweisungsoperator ist das Gleicheitszeichen Sie benutzen ihn um einer Variablen ein Wert zuzuweisen Beispiel ergebnis 34 2 F r die Arithmetischen Operatoren und Bit Operatoren gibt es eine Kombination mit Zuweisung nach diesen Schema a 4 ergibt 7 Die Variable der Sie das Ergebnis zuweisen ist zugleich der linke Operator des Operanden Sie k nnen externe Programme ausf hren und deren Textausgabe einer Variablen zuweisen ergebnis ls l Der Is Befehl listet das Inhaltsverzeichnis des aktuellen Verzeichnisses auf Diese Liste weisen Sie der Variablen ergebnis zu Achten Sie auf die richtige Zeichensetzung hier m ssen Sie die Backquotes verwenden nicht die einfachen Anf hrungsstriche Quotes Zeichenketten k nnen mit dem Punkt verkettet werden Hallo Maxi ergibt Hallo Maxi Seite 110 SMS Anwendungen 4 8 6 Kontrollstrukturen Programme werden normalerweise der Reihe nach von oben nach unten ausgef hrt Mit Kontrollstrukturen durchbrechen Sie diese Monotonie Kontrollstrukturen erm glichen die wiederholte Ausf hrung eines Programmabschnittes oder die bedingte Ausf hrung eines Abschnittes Programmabschnitte sind
159. erkung Mittlerweilen existiert das PPRTU Projekt welches es den mobilen Telefonkunden erlaubt den Netzanbieter zu wechseln ohne eine neue Telefonnummer zu bekommen Die Vorwahl in der Telefonnummer ist also kein eindeutiges Anzeichen mehr zu welchem Netzanbieter die Telefonnummer geh rt F r sms ist das unkritisch aber eine falsche Zuordnung kann zu erh hten Geb hren f r den SMS Versand f hren und Statistiken verf lschen Wenn im SMS File weder der Netzanbieter angegeben wurde noch die Vorwahl bekannt ist wird die SMS als ung ltig betrachtet und in die fehlgeschlagene Warteschlange Failed Queue verschoben Die Nachricht wird dann nicht gesendet Wenn Sie die fehlgeschlagenen Nachrichten nicht aufbewahren wollen k nnen Sie das tun indem Sie in der Konfigurationsdatei sms conf einfach keine fehlgeschlagene Warteschlange angeben Jetzt wird die Kurzmitteilung gesendet Provider Queue Vodafone Modem 1 PARADA Butsms DDDDDD p gt Failed Folder ri Jeder Netzanbieter Warteschlange Provider Queue ist wenigstens ein Modem zugeordnet Ein Programmteil von sms Modem Task liest die SMS Files aus den Netzanbieter Warteschlangen aus und sendet Sie mit Hilfe des Unterprogrammes Putsms Sie k nnen mehrere Modems dem selben Netzanbieter zuordnen was in den Beispielbildern hier nicht gezeigt wird Dadurch erh hen Sie die Geschwindigkeit mit der viele Nachrichten gesendet werden Ausserdem bleibt Ihr System nicht stecken w
160. ert fest der automatisch benutzt wird wenn Sie einen neuen Datensatz ohne Angabe der Werte anlegen z B CHAR 5 DEFAULT Hallo Durch die Option AUTO_INCREMENT erhalten Sie eine Spalte deren Werte automatisch hochgez hlt werden Dabei wird mit der 1 begonnen Jede Tabelle sollte eine Spalte mit der Option PRIMARY KEY NOT NULL haben Jede Reihe in der Tabelle bekommt so zwangsweise ein eindeutiges Kennzeichen in dieser Spalte Sie muss immer ausgef llt sein und muss einen eindeutigen Wert haben der in keiner Reihe mehrfach vorkommt Meistens ist die erste Spalte einer Tabelle so festgelegt id INTEGER AUTO_INCREMENT PRIMARY KEY NOT NULL Seite 91 SMS Anwendungen 4 7 4 Eine Datenbank mit zwei Tabellen anlegen Starten Sie den MySQL Client durch Eingabe von mysql u root p Geben Sie das Passwort ein dass Sie w hrend der Installation festgelegt haben Nun legen Sie eine Datenbank an indem Sie create database adressen eingeben Die neue Datenbank heisst nun adressen Teilen Sie MySQL mit dass Sie bei allen folgenden Befehlen diese Datenbank benutzen m chten use adressen Legen Sie in dieser Datenbank eine Tabelle an und bestimmen Sie die Datentypen der Spalten create table anschriften id INTEGER AUTO_INCREMENT PRIMARY KEY NOT NULL name CHAR 30 vorname CHAR 30 strasse CHAR 30 plz CHAR 5 ort CHAR 30 Legen Sie eine zweite Tabelle in der Adressdatenbank an create table kontostand id INTEGER PRI
161. erte dann dazu Ihnen gehen also keine Z hler verloren Bitte beachten Sie dass neuere Programmversionen m glicherweise zus tzliche Z hler besitzen Diese werden dann an das rechte Ende angehangen Wenn Sie Programme oder Makros schreiben die Statistiken auslesen kann dies wichtig sein Seite 193 SMS Anwendungen 5 13 Protokollierung in SQL Datenbank Die Protokollierung in eine SQL Datenbank ist besonders bei kommerziellen SMS Diensten n tzlich Sie erm glicht nicht nur das Abrechnen der Dienstleitung sondern auch die Kontrolle ob alle SM ausgeliefert wurden Die Protokolldatenbank enth lt eine Liste aller gesendeten und empfangenen SM Bei gesendeten SM wird ausserdem der Status eingetragen den die SMS Zentrale mittels Statusberichte zur ckgemeldet hat Die Protokollierung in eine SQL Datenbank ist eigentlich keine direkte Funktion der SMS Server Tools Sie wurde mit einem Shell Script realisiert dass man als Eventhandler installiert Wenn Sie andere Verkn pfungen zwischen den SMS Server Tools und einer MySQL Datenbank entwickeln m chten k nnen Sie dieses Script hervorragend als Vorlage benutzen denn es ist nicht besonders kompliziert Dieses Shellscript heisst mysmsd und wird bei der Installation der SMS Server Tools nach usr local bin kopiert ffnen Sie das Script bitte in Ihrem bevorzugtem Editor und passen Sie die Variablen am Dateianfang an SQL HOST localhost SOL USER root SOL PASSWORD SOL DATABASE
162. erver Tools Installieren Die SMS Server Tools brauchen Sie nur auf dem Server installieren an dem auch die GSM Modems angeschlossen sind Downloaden Sie die libmm von http www ossp org pkg lib mm und die SMS Server Tools von Version 2 x http www meinemullemaus de smstools Version 3 x http smstools3 kekekasvi com Kopieren Sie die beiden Dateien libmm 1 4 0 tar gz und smstools x x x tar gz in das Verzeichnis c cygwin usr src Starten Sie dann ein CygWin Bash Shell Fenter und geben Sie ein mkdir etc init d mkdir usr local src cd usr local src tar xvzf libmm 1 4 0 tar gz cd usr local src mm 1 4 0 Iconfigure make make install cd Jusr local src tar xvzf smstools tar gz cd usr locallsre smstools ffnen Sie die Datei c cygwin usr local sre smstools src Makefile mit einem Editor Aktivieren sie die Statistik Funktion durch Einf gen einer Raute vor die Zeile mit der NOSTATS Option mkdir var spool make make install 4 2 2 6 Merkliste f r Windows Merken Sie sich bitte die folgenden Dateien da sie nicht in jedem Betriebssystem identisch sind In sp teren Kapiteln werde ich nicht mehr auf Betriebssystem spezifische Details eingehen SMS Server Tools starten smsd amp stoppen pkill smsd Konfigurationsdatei letc smsd conf Fehler Logdatei SMS Warteschlangen var log smsd log Ivarlspool sms Apache Webserver starten net start Apache in DOS Eingabeaufforderung oder mit dem Monit
163. es hier keine DSR Leitung gibt muss man das Modem so einstellen dass es dieses Signal ignoriert oder man verbindet auf Modem Seite DSR mit RTS Pin 1 2 TxD Port A 3 RxD Port A ARTS Port A 5 CTS Port A 8 DCD Port A 20 DTR Port A 7 GND 11 DTR Port B 12 DCD Port B 13 CTS Port B 14 TxD Port B 16 RxD Port B 19 RTS Port B RJ45 Anschluss Digi Etherlite 1 RTS 2 DSR 3 DCD 4 RxD 5 TxD 6 GND 7 DTR 8 CTS RJ 45 Male Seite 14 SMS Anwendungen 2 3 3 Serielle Ports erweitern Wenn der Server nicht genug serielle Schnittstellen hat kann man diese auf unterschiedliche Weise erweitern e mehrere Server verwenden manuelle Umschalter e serielle Ports ber USB e zus tzliche PCI Karten e serielle Ports ber Ethernet Die erste Variante scheidet aus Kostengr nden aus die zweite ist auch nicht praktikabel denn der Server soll automatisch funktionieren Serielle Ports kann man elegant ber die USB Schnittstelle erweitern doch diese Ger te werden derzeit leider ausschliesslich mit Windows Treibern geliefert Zus tzliche PCI Karten lassen sich oft nur sehr bedingt einbauen weil die Anzahl der verf gbaren PCI Slots begrenzt ist Durch das ffnen des Ger tes erlischt ausserdem bei vielen Herstellern die Garantie Die letzte M glichkeit serielle Ports ber Ethernet zu erweitern halte ich f r die beste Es gibt zahlreiche Ger te auf dem Markt die serielle Ports ber Ethernet erweitern Sie sc
164. esondere um 0 00 Uhr denn das Betriebssystem selbst pflegt zu dieser Zeit seine eigenen Protokolldateien Je mehr Aktionen der Computer zur selben Zeit ausf hrt um so langsamer wird er in dieser Zeit Ausserdem w rde sich der Fragmentierungsgrad der Festplatte unn tig erh hen Fragmentierung entsteht immer wenn mehrere Dateien zugleich wachsen oder kleiner werden Fragmentierung reduziert die Geschwindigkeit der Festplatte Machen Sie sich dar ber jetzt aber bitte nicht berm ssig Kopfzerbrechen Vor etwa 10 Jahren war dieses Thema noch wirklich interessant weil die Festplatten erheblich langsamer waren als heute Das Dateisystem von MS Dos FAT ging auch nicht gerade sorgsam mit der Fragmentierung um und erzwang fr her oder sp ter die Benutzung einer Defragmentierungs Software Inzwischen sind die Festplatten aber sehr viel schneller geworden und die Betriebssysteme wurden verbessert Fragmentierung stellt heute nur noch usserst selten ein Performanceproblem dar Der oben gezeigte Cron Job stellt sicher dass die Protokolldatei der SMS Server Tools nicht unendlich gro wird Sie k nnen jederzeit auf die Protokolle des laufenden Tages sowie auf den Vortag zugreifen Doch was ist wenn Ihnen ein Tag nicht ausreicht Schreiben Sie sich das folgende Script ab und f hren Sie es als Cron Job jede Nacht einmal auf logfiles sh bin sh rename 1 is a filename 2 is the number of days to keep rm 1 2 gt dev null 2 gt 41
165. essage _id ist eine fortlaufende Nummer die jedes GSM Modem seinen gesendeten Nachrichten vergibt Im Statusbericht finden Sie diese Nummer wieder damit Sie den Bericht eindeutig einer gesendeten Nachricht zuordnen k nnen Doch diese Nummer birgt einen kleinen gemeinen Haken in sich Sie beginnt n mlich bei O und wird fortlaufend bis 255 hoch gez hlt Die n chste SM hat dann wieder die Nummer 0 Durch den sehr kleinen Nummernkreis von 0 255 ist eine eindeutige Zuordnung nicht wirklich m glich Der Discharge_Timestamp gibt an wann die Nachricht im Speicher der SMS Zentrale gel scht wurde Das tut sie immer dann wenn sie erfolgreich ausgeliefert werden konnte oder als unzustellbar verworfen wird Wenn die Nachricht noch nicht zugestellt wurde aber weiterhin in der Warteschlange der SMS Zentrale verbleibt enth lt dieser Zeitstempel nur lauter Nullen Die letzte Zeile meldet den Status und zwar zuerst als Zahl und danach als Text Die SMS Server Tools melden den Text auf englisch hier m chte ich ihn auf deutsch bersetzen Ok die Nachricht wurde ausgeliefert Ok die Nachricht wurde warscheinlich ausgeliefert aber das Endger t hat den Empfang nicht best tigt Ok die Nachricht wurde aber vom SMSC durch eine andere ersetzt Versuche weiter Netz ausgelastet Versuche weiter Endger t ist nicht bereit Versuche weiter das Endger t antwortet nicht Versuche weiter der Dienst wurde verweigert Versuche
166. etragen insert into SQL TABLE type sent sender receiver msgid values TS SDATE SFROM STO 53 Im Quelltext des Shell Scriptes werden Sie vor jedem Anf hrungsstrich einen Backslash sehen denn Anf hrungsstriche innerhalb der selben Anf hrungsstriche sind nicht erlaubt Es wird also eine neue Reihe in die Tabelle eingef gt mit folgenden Werten SENT oder FAILED Aktuelles Datum Absendername oder Nummer Empf ngernummer ID Nummer der Nachricht Empfangene SM werden etwas anders in die Tabelle eingetragen n mlich so insert into SOL TABLE type sent received sender receiver values RECEIVED SSENT SDATE SFROM SSUBJECT Es wird also eine neue Reihe in die Tabelle eingef gt mit folgenden Werten Seite 197 SMS Anwendungen Sendedatum und Uhrzeit Aktuelles Datum Absendername oder Nummer Name des Modems Status Reports enthalten noch weitere Informationen die bisher noch nicht aus der SMS Datei extrahiert wurden Dies wird an dieser Stelle erledigt wo klar ist dass es sich um einen Statusreport handelt DISCHARGE sed e 1 7d lt 2 formail zx Discharge timestamp MSGID sed e 1 7d lt 2 formail zx Message id STATUS sed e 1 7d lt 2 formail zx Status cut f1 d Der erste Befehl ermittelt die Zeitangabe wann das SMSC die Nahricht ausgeliefert hat Die zweite Zeile ermittelt die ID Nummer auf die
167. etzt k nnen Sie aber kein Backup machen weil w hrend des Backups keine neue Eintr ge gespeichert werden k nnen Und bei sehr gro en Tabellen kann das Backup einige Minuten dauern F r Sie ist es nicht hinnehmbar dass Sie solange warten m ssen bis Sie die erbrachte Dienstleistung abspeichern k nnen Tabellen die schnell verf gbar sein m ssen sollten Sie daher m glichst klein halten Kleine Tabellen k nnen Sie unbemerkt mittels Hot Backup sichern Eine Verz gerung von wenigen Sekunden ist sicher akzeptabel Die L sung f r das Problem ist diese eine Tabelle in zwei aufzuteilen Die erste Tabelle speichert alle Rechnungsdaten die zum laufenden Monat geh ren und sp ter auf ein Rechnungsformular ausgedruckt werden Die zweite Tabelle speichert alle Rechnungsdaten die schon ausgedruckt wurden Im Laufe von mehreren Monaten oder gar Jahren wir Ihre zweite Tabelle dann immer gr sser und das Hot Backup dauert dementsprechend immer l nger Das ist aber unkritisch denn nur die erste Tabelle muss schnell verf gbar sein Die erste Tabelle speichert nur Daten vom laufenden Monat und daher bleibt sie stets klein Seite 102 SMS Anwendungen Und so kopieren Sie den Inhalt von tabelle1 in tabelle2 insert into tabelle2 select from tabelle1 oder insert into tabelle2 select from tabelle1 where datum lt 2003 04 01 Eine etwas andere Variante des Befehls ist praktisch wenn die Zieltabelle noch nicht existiert create
168. euge die ihre Position per SMS melden Alarmanlagen und Maschinen melden St rf lle per SMS SMS gibt es schon seit rund 10 Jahren doch kaum jemand ist sich bewusst was man mit den Kurzmitteilungen alles anfangen kann Ich m chte Ihnen in diesem Buch einige Anwendungsbeispiele vorf hren von der Idee bis zum physikalischen Aufbau und dem Betrieb Ich habe dieses Buch bewusst in kurzen und b ndigen S tzen geschrieben weil ich Sie nicht unn tig lange mit dem Lesen inhaltloser Worte aufhalten m chte Die Branche ist schnellebig und wer nicht entsprechend schnell arbeitet kommt nicht weit Lesen Sie das Buch von vorne nach hinten durch Der Schwierigkeitsgrad steigt stetig und die Kapitel bauen jeweils auf die vorherigen Kapitel auf Mit SMS Diensten wird viel Geld verdient Schneiden Sie sich ein St ck von diesem Kuchen ab In diesem Buch tauchen zahlreiche registrierte Firmennamen Produktnamen Logos und Fotos auf Diese sind Eigentum der entsprechenden Firmen Seite 8 SMS Anwendungen 1 2 ber den Autor Mein Name ist Stefan Frings Ich wurde 1974 in Deutschland geboren und arbeitete mich bereits als Kind in die Funktionsweise von Elektronik und Computer ein In der Schule entwickelte ich zusammen mit dem Technik Lehrer Baus tze f r die nachfolgenden Jahrg nge und reparierte elektronische Ger te der Schule Nach der Ausbildung zum Kommunikationselektroniker Fachrichtung Telekommunikation arbeitete ich zun chst
169. ext lt br gt print Es folgt eine MySQL Abfrage lt br gt mysql_connect localhost root Mein Passwort mysql select db mysql Sergebnis mysql query select user host password from user for nr 1 Sreihe mysql_fetch_row ergebnis nr print Sreihe 0 Sreihe 1 reihe 2 lt br gt 2 gt i lt body gt lt html gt Verwenden Sie beim mysql_connect Befehl den Namen Ihres MySQL Servers und das richtige Passwort Wenn der Webserver zugleich MySQL Server ist dann ist localhost als Name einzugeben Starten Sie nun einen Web Browser und geben Sie http localhost test php oder http lihr_webserver_nameltest php ein Es sollte folgendes erscheinen Das ist HTML Text Das ist PHP Text Es folgt eine MySQL Abfrage root localhost x4fhg425fdfds Die erste Zeile ist ganz normaler HTML Code die zweite testet die PHP Integration in den Webserver Die dritte und vierte Zeile testet die Verbindung zur MySQL Datenbank Schauen Sie sich noch einmal das Beispielprogramm an Sie sehen hier deutlich wie ein St ck Programmcode mitten in die HTML Datei eingef gt wurde Anfang und Ende werden durch lt php und gt gekennzeichnet Das PHP Programm verbindet sich mit der SQL Datenbank und fragt die Liste der SQL User mit deren Passw rter ab Die Passw rter sind verschl sselt gespeichert daher sehe Sie ein kryptisches Passwort hinter dem Wort root im Web Browser Seite 62 SMS Anwendungen 4 2 2 5 SMS S
170. f Nachdem Sie die Datei erstellt haben verschieben Sie sie in die ausgehende Warteschlange Outgoing Queue Das is ein einfaches Verzeichnis auf der Festplatte Sie k nnen die Datei auch direkt in diesem Verzeichnis erstellen wenn das schnell geht Das Hauptprogramm sms untersucht die Dateien und pr ft ob sie innerhalb einer Sekunde gr sser werden oder nicht Wenn eine Datei innerhalb einer Sekunde ihre Gr sse beibehalten hat geht sms davon aus dass sie fertig ist und jetzt gesendet werden kann Falls Sie Dateien direkt in der ausgehenden Warteschlange erstellen stellen Sie sicher dass dies z gig vonstatten geht damit die Nachricht nicht irrt mlich zu fr h gesendet wird bevor sie fertig erstellt wurde Das Dateiformat der SMS Files ist sehr einfach Es hnelt dem Dateiformat von eMails unter Unix Zuerst kommt kein Kopf mit Absender Empf nger und evtl weiteren Informationen Sie d rfen beliebig viele Zusatzinformationen in den Kopf schreiben Smsd ignoriert alles womit es nichts anfangen kann Dann kommt eine Leerzeile und danach der Text Bei bin ren SM z B Klingelt nen oder Logos gilt die selbe Regel Die Bin rdaten beginnen unmittelbar nach der Leerzeile Im obigen Bild sehen Sie ein Beispiel f r ein g ltiges SMS File Die ausgehende Warteschlange erlaubt es Ihnen viele SMS Files abzulegen die dann nacheinander gesendet werden Sie brauchen nicht nach dem Speichern jeder einzelnen Datei zu warten bis sie tats
171. fang von Kurzmitteilungen ben tigen Sie k nnen die Programme installieren und anwenden In diesem Kapitel zeige ich Ihnen nun wie Sie die Funktionen der SMS Server Tools sinnvoll erweitern Der Inhalt dieses Kapitels basiert auf Anfragen von Anwendern der SMS Server Tools Es werden immer wieder die gleichen Fragen nach Erweiterungsm glichkeiten gestellt Das Programm biete ich mit dem Basis Funktionsumfang kostenlos an Doch nur die Leser dieses Buches erfahren von mir wie sie noch mehr aus dem Programmpaket heraus holen 6 1 Wartungsfreier Dauerbetrieb Die meisten Softwareh user vergessen beim Aufbau eines Server Systems dass der Kunde in der Regel einem wartungsfreien Betrieb erwartet Der Kunde m chte nur Hand anlegen wenn Hardware defekt ist oder sonst irgendeine unerwartete St rung auftritt Daraus ergibt sich die Forderung Solange das System korrekt funktioniert muss es beliebig lange so weiter laufen ohne dass regelm ssige Wartungsarbeiten anfallen Obwohl die Erf llung dieses Kriteriums weder ein Problem ist noch mit hohem Aufwand verbunden ist wird es immer wieder ausser Acht gelassen Meistens scheitert der wartungsfreie Betrieb daran dass irgendwelche tempor ren Dateien oder Protokolldateien langsam eine Festplattenpartition f llen Irgendwann ist die Festplatte voll und dies wiederum f hrt normalerweise zu einem Funktionsausfall Manche Programme sind mangelhaft geschrieben Sie st rzen spontan ab oder verbr
172. fehle make s make s install Der erste Befehl berstetzt die Programmquelltexte in ein ausf hrbares Programm entsprechend Ihrem Betriebssystem Der zweite Befehl installiert das Programm Die folgende Liste zeigt Ihnen welche Dateien wohin installiert werden bezogen auf Version 1 15 Neuere Versionen haben m glicherweise zus tzliche Dateien Das Hauptprogramm Unterprogramm zum Senden Unterprogramm zum Empfangen Shell Script Kann benutzt werden um an der Eingabeaufforderung manuell eine SM zu senden Shell Scripte zum Konvertieren von SMS Dateien Vorlage f r Konfigurationsdatei muss auf jeden Fall individuell angepasst werden Startup Script kann benutzt werden um smsd zu starten und zu stoppen insbesondere beim Booten Warteschlange f r empfangene SM Warteschlange f r ausgehende SM Warteschlange f r gepr fte ausgehende SM Wenn Sie die SMS Server Tools sp ter durch eine neuere Version aktualisieren werden Ihre Scripte und Konfigurationsdateien nicht berschrieben Smsd wird durch eine einzige Konfigurationsdatei eingerichtet Dies ist normalerweise die Datei etc smsd conf Sie k nnen auch eine andere Konfigurationsdatei benutzen dann m ssen Sie diese aber mit der Option c angeben Beispiel smsd c ete smsd conf test Die Vorlage f r die Konfigurationsdatei zeigt Ihnen wie Sie die SMS Server Tools f r ein Modem einrichten Die Datei ist f r einen schne
173. frau irgendwo de Subject Testmail Hallo das ist ein Test lt Strg D gt Wenn Sie Probleme beim Versand von eMails haben dann starten Sie sendmail mit der Option v vor der Empf ngeradresse Das Programm zeigt dann einige Informationen ber Erfolg oder Misserfolg an Seite 81 SMS Anwendungen 4 5 4 eMail empfangen Um eMails von einem Mailserver zu empfangen k nnen Sie das Programm fetchmail benutzen Legen Sie sich die Konfigurationsdatei etc fetchmailrc nach folgendem Schema an alles in eine Zeile poll mail isis de protocol POP3 user mustermann pass geheim mda cat gt mktemp tmp mail XXXXXXXX Sie k nnen mehrere POP3 Postf cher abrufen indem Sie f r jedes Postfach eine solche Zeile in die Datei schreiben In diesem Fall ist mail isis de der Mailserver Das POP3 Konto h rt auf den Namen mustermann und das Passwort ist geheim Wenn Sie mehrere Postf cher abrufen wollen tragen Sie in diese Konfigurationsdatei einfach entsprechend mehrere Zeilen ein Geben Sie den Befehl chmod 0710 etc fetchmailrc ein weil fetchmail die Datei sonst nicht lesen will Nun k nnen Sie eMail abrufen indem Sie fetchmail so starten fetchmail f etc fetchmailrc Mehr Statusinformationen erhalten sie mit der Option v zuf llige Zeichenfolgen benutzt Der Befehl mktemp stellt sicher dass keine Dateinamen doppelt vergeben werden Sie k nnen fetchmail auch als D mon starten indem Sie die Option d 300 beim Start mit
174. gaben elegant l sen was mit der Shell nur sehr umst ndlich m glich w re An dieser Stelle greife ich etwas vor Auch wenn Sie die Funktionsweise der SMS Server Tools nicht nicht ganz kennen m chte ich Ihnen ein sehr konkretes Anwendungsbeispiel geben Angenommen Ihre Kunden k nnen per SMS einen Witze bestellen indem Sie das Wort Witz und eine Artikelnummer per SMS an Ihren Server senden Sie empfangen nun viele SMS Nachrichten von denen sicher einige keine g ltige Bestellung erhalten Ihr Programm soll folgende Aufgaben erf llen Verwerfen aller ung ltigen Bestellungen Extrahieren der 5 Stelligen Artikelnummer e Versenden des Artikels Witz Sie k nnten nun grep verwenden um zu pr fen ob die empfangene SMS das Wort Witz enth lt und ob eine Artikelnummer enthalten ist Doch grep kann Ihnen nicht die Artikelnummer extrahieren Auch der Befehl cut ist wenig hilfreich denn Sie wissen nicht wo die Artikelnummer steht Der Kunde k nnte sie an den Anfang schreiben oder an das Ende Er k nnte Leerzeichen dazwischen schreiben und er k nnte auch andere berfl ssige W rter in die SMS schreiben Beispiel Hallo ich m chte den Witz Nummer 12345 bekommen Prinzipiell ist das eine g ltige Bestellung denn sie enth lt sowohl das Wort Witz als auch die Artikelnummer Ich m chte Ihnen nun zeigen wie sie ein Shell Script und Awk kombinieren um solche Bestellungen zu verarbeiten Ihre Ware die Witze liegt in Form vo
175. gadd d gzip 1 3 5 10 gunzip gz pkgadd d bzip 2 1 0 4 pkgadd d sed 4 1 5 Seite 51 SMS Anwendungen 4 2 1 3 MySQL konfigurieren Erstellen Sie ein Start Stop Script mit dem Namen etc init d mysqld mit folgendem Inhalt bin sh case 1 in start usr local mysql bin mysqld_ safe amp stop pkill libexec mysqld restart reload 0 stop amp amp 0 start is ji echo Usage 0 start stop restart exit 1 esac Geben Sie diese Befehle ein cd etc init d chmod a rx mysqld cd etc rc3 d In s etc init d mysqld S80mysqld groupadd mysql useradd d usr local mysq l g mysql mysql Installieren Sie eine leere Datenbank Ohne Datenbank k nnen Sie den MySQL Server sp ter nicht starten lusr local mysq l bin mysql_install_db chown R mysql usr ocal mysql var chgrp R mysql usr ocal mysql var Starten Sie dem MySQL Server beim n chsten Booten wird er automatisch gestartet letc init d mysqld start MySQL erlaubt standardm ssig allen Usern vollen Zugriff auf alle Datenbanken Dies sollte man sofort ndern Ich schlage vor f r root localhost ein Passwort zu vergeben und alle anonymen Zug nge zu l schen Sp ter kann man bei Bedarf neue User hinzuf gen mysqladmin u root password Mein_Passwort mysql u root p mysql gt use mysql mysql gt delete from user where user or password mysql gt quit mysqladmin u root p reload Der Username root hat nichts mit dem Solaris User root
176. gekennzeichnet Der Continue Befehl erzwingt die n chte Schleifen Wiederholung auch wenn der Programmabschnitt innerhalb der Schleife noch nicht zu Ende ausgef hrt wurde birnen 0 versuche 0 Seite 114 SMS Anwendungen while versuche lt 1000 versuche versuche 1 if faul true print Die Birne Nr versuche ist faul lt br gt continue print Die Birne Nr versuche nehme ich nun hmm schmeckt lecker lt br gt birnen birnen 1 print Wir haben jetzt 1000 Birnen oder einige faule Fr chte bersprungen lt br gt print birnen Fr chte waren gut Diese Schleife versucht 1000 Birnen zu nehmen Wenn eine faule Frucht erkannt wurde wird diese jedoch bersprungen Die verbleibenden Befehle print Die Birne Nr versuche nehme ich nun hmm schmeckt lecker lt br gt birnen birnen 1 werden bei faulen Fr chten nicht ausgef hrt weil der Continue Befehl den n chsten Schleifendurchlauf erzwingt Die Variable versuche wird kontinuierlich um eins erh ht w hrend die Variable birnen nur bei guten Birnen erh ht wird Continue und Break im Vergleich Der Break Befehl unterbricht eine Schleife Als n chstes werden die Befehle ausgef hrt die hinter der Schleife im Programm stehen Der Continue Befehl unterbricht die Befehle innerhalb einer Schleife und erzwingt den n chsten Schleifendurchlauf Break und continue k nnen Sie auch bei do while und for anwenden Es gibt
177. genau eine gleichnamige Zeile im Abschnitt provider geben Schreiben Sie die Vorwahlen immer in internationaler Form aber ohne das voranstehende Plus Zeichen provider Name Liste mit Vorwahlen Name Liste mit Vorwahlen Name Liste mit Vorwahlen Beispiel provider D1 49160 49170 49171 49175 49151 D2 491520 49162 49172 49173 49174 02 49176 49179 49159 EPLUS 49163 49177 49178 49157 QUAM 49150 MOBILCOM 49156 Seite 173 SMS Anwendungen Seite 174 SMS Anwendungen 5 2 3 4 Modemeinstellungen Nach den Netzanbieter Vorwahlen folgen ein oder mehrere Modemeinstellungen F r jedes angeschlossene Modem muessen Sie einen passenden Abschnitt mit Modemeinstellungen in die Konfigurationsdatei schreiben Orientieren Sie sich dabei an der Zeile devices Liste mit Modemnamen aus dem Hauptabschnitt F r jedes dort aufgelistete Modem sucht smsd einen entsprechenden Abschnitt mit Modemeinstellungen Es ist erlaubt mehr Modemeinstellungen in die Datei zu schreiben als Sie wirklich benutzen Wenn Sie Beispielsweise ein Modem zeitweise ausser Betrieb nehmen weil es repariert werden muss brauchen Sie nicht die ganzen Einstellungen zu l schen Entfernen Sie das defekte Modem einfach aus der devices Zeile im Hauptabschnitt und belassen Sie die Modemeinstellungen einfach wie sie sind Smsd interessiert sich nur f r Modems die in der devices Zeile aufgelistet sind Die folgenden Einstellungen k
178. gid char 3 YES NULL Dies erreichen Sie durch die Eingabe der folgenden Befehle Seite 194 SMS Anwendungen stefan server gt mysql u root p mysql gt create database smsd Query Ok mysql gt use smsd Database changed mysql gt create table sms_log gt id int auto_increment not null gt primary key id gt type char 16 gt sent datetime gt received datetime gt sender char 32 gt receiver char 32 gt status char 3 gt msgid char 3 gt Query Ok Sie haben nun alle Vorbereitungen getroffen und k nnen die SMS Server Tools stoppen und neu starten um die nderungen wirksam werden zu lassen Ab sofort tr gt smsd mit Hilfe des Scriptes mysmsd alle gesendeten und empfangenen SM in diese Tabelle ein Nach drei Aktionen k nnte die Tabelle z B so aussehen lid type sent received sender receiver status msgid 1 IRECEIVED 2000 02 21 22 26 23 2002 06 06 12 16 23 491721234567 MODEM1 NULL NULL 2 SENT 12002 06 06 12 16 34 2002 06 06 12 16 59 somebody 1491721234567 Qe lo ATA 3 FAILED 2002 06 06 12 16 48 NULL somebody 1491721234567 NULL NULL
179. gkeit Umgekehrt gilt das auch f r Modem 2 Sie sind vor Netzausf llen eines einzelnen Netzanbieters gesch tzt denn das andere Modem wird fortfahren Kurzmitteilungen zu senden Sie sparen Geld denn wenn Sie Kurzmitteilungen zum eigenen Netzanbieter schicken ist das etwas billiger und sie erhalten bei einigen Vertr gen sogar einen saftigen Mengenrabatt Das Modem mit der D1 SIM Karte soll also vorzugsweise an D1 Empf nger senden und das andere Modem soll vorzugsweise an D2 Empf nger senden Der Punkt 4 ist als der Grund warum Kurzmitteilungen von sms berhaupt nach Netzanbieter vorsortiert werden Ohne diese Vorsortierung k nnten Sie die Mengenrabatte und g nstigeren Preise nicht optimal ausnutzen Nun m chte ich Ihnen erkl ren wie der Empfang von SM funktioniert Modem 1 444444 1 Der Programmteil von sms der das Modem steuert Modem Task ruft regelm ssig empfangene Kurzmitteilungen ab Dazu benutzt er das Unterprogramm Getsms Die empfangenen Nachrichten werden in der eingehenden Warteschlange Incoming Queue abgelegt Incoming Folder iii Sie k nnen in der Konfigurationsdatei von sms festlegen welche Modems Kurzmitteilungen empfangen sollen und was Priorit t hat Senden oder Empfangen Bei den meisten Modems m ssen Sie die Priorit t auf Empfangen einstellen denn wenn der Posteingang voll ist k nnen die meistem Modems leider keine Nachricht senden Probieren Sie es im Zweifelsfall aus Weitere Funktio
180. gt fest bei welchen Stufen ein Alarmhandler gestartet wird Sie k nnen Werte von 2 bis 5 benutzen notice Informationen wenn eine Nachricht gesendet oder empfangen wurde sowie Informationen ber alle nicht normalen Ereignisse i warning Warnung wenn das Programm ein Problem hat z B eine Nachricht nicht senden kann error Fehlermeldungen wenn das Programm ein tempor res Problem hat z B ein Modem mit ERROR antwortet oder eine Datei nicht gelesen werden kann critical Kritische Fehler Wenn das Programm ein permanentes Problem hat z B das Senden mehrfach fehlschl gt oder die Zugriffsrechte auf Warteschlangen nicht ausreichen delaytime Zahl Legt fest wie viele Sekunden sich smsd schlafen legt wenn eine Warteschlange leer ist Nach Ablauf dieser Zeit pr ft smsd erneut ob neue SMS Files in der Warteschlange stehen Je gr sser diese Zahl ist um so geringer wird die Festplatte und der Prozessor durch smsd belastet Wenn Sie Wert auf maximale Leistung legen stellen Sie eine Sekunde ein und benutzen Sie diesen Computer nicht gleichzeitig f r andere Programme Der Vorgabewert ist 10 Sekunden errorsleeptime Zahl Wenn ein Modem mit ERROR antwortet kann das Programm eine zus tzliche Pause einlegen Manche Modems brauchen dies bevor Sie neue Befehle annehmen k nnen Der Vorgabewert ist 10 Sekunden blocktime Zahl Wenn das Versenden von drei aufeinander folgenden Kurzmitteilungen fehlschl g
181. hen gesetzt Variable Wert Listen sind mehrere Werte durch Kommata getrennt Variable Wert1 Wert2 Wert3 Die gesamte Konfigurationsdatei unterscheidet zwischen gro en und kleinen Buchstaben ausser bei booleanschen Werten Booleansche Werte sind yes on true 1 no off false O Sie k nnen diese beliebig miteinander mischen Seite 170 SMS Anwendungen 5 2 3 1 Haupteinstellungen Der Hauptabschnitt hat keinen Namen und beginnt ganz oben in der Konfigurationsdatei devices Liste mit Modemnamen Legt die Anzahl und Namen der Modems fest Verwenden Sie nur Buchstaben Ziffern und den Unterstrich _ im Namen Die Modemnamen tauchen in Statistiken Dateinamen Protokoldateien und Ereignis Programmen auf Sie muessen die Modems hier nicht so nennen wie sie wirklich heissen Erfinden Sie einfach Namen die Ihnen gefallen Haupsache sie sind eindeutig spool Verzeichnisname Hier geben Sie das Verzeichnis f r die ausgehende Warteschlange an Der Vorgabewert ist var spool sms outgoing checked Verzeichnisname Hier geben Sie das Verzeichnis an in welches gepr fte ausgehende Nahrichten verschoben werden Der Vorgabewert ist var spool sms checked Diese Variable hat keine Bedeutung wenn Sie provider und queue Verzeichnisse festlegen failed Verzeichnisname Hier geben Sie das Verzeichnis an in dem fehlgeschlagene SMS Files aufbewahrt werden Wenn Sie keine Angabe machen werde fehlgeschlagene Dateien e
182. hleife gibt jedes Wort einzeln aus hat also eine Liste mit drei W rtern erzeugt Die zweite for Schleife gibt aber nur eine Zeichenkette aus alle Drei W rter sind zu einem einzigen Text verschmolzen test32 sh Eins Zwei Drei Eins Zwei Drei Eins Zwei Drei Itest32 sh Eins 1 Zwei 2 Drei 3 Eins Zwei Drei Eins 1 2 3 1 Zwei 2 Drei 3 Wenn Sie die beiden Ausgaben miteinander vergleichen bemerken Sie dass der Text Eins 1 nicht auseinandergerissen wird Wenn Sie oder ohne Anf hrungsstriche Schreiben bekommen Sie in beiden F llen eine Liste mit einzelnen Worten In diesem Fall wird Eins 1 auch auseinandergenommen test33 sh Seite 138 SMS Anwendungen bin sh for Wort in do echo SWort done Itest33 sh Eins 1 Zwei 2 Drei 3 Eins Es gibt als drei unterschiedliche M glichkeiten alle Argumente gleichzeitig auszulesen 4 9 12 Mehr als neun Argumente Sie haben gerade gelernt dass die Variablen 1 bis 9 die Argumente repres ntieren die Sie einer Funktion oder einem Shell Script beim Aufruf bergeben Tats chlich ist die Anzahl der Argumente jedoch nicht auf 9 beschr nkt Die Grenze von 9 umgehen Sie mit dem Shift Befehl test34 sh bin sh echo Das erste Argument ist 1 shift echo Das zweite Argument ist 1 shift echo Das dritte Argument ist 1 shift echo Das vierte Argument ist 1 Der Shift Befeh
183. hlen oder Texte ein Beispiel test2 sh bin sh printf Die Zahl i gef llt mir s n 13 gut Der Befehl gibt anstelle des Platzhalters i die Zahl 13 aus und anstelle des Platzhalter s gibt es das Wort gut aus Die korrekte Reihenfolge der Argumente ist wichtig Am Ende habe ich ein n geschrieben weil printf die Texte nicht automatisch mit einem Zeilenumbruch abschliesst wie echo es tut Von den vielen denkbaren Platzhaltern sind diese gebr uchlich i Dezimalzahl s Text fFliesskommazahl e e Fliesskommazahl in Exponentialschreibweise e 0 Oktalzahl e x Hexadezimalzahl mit kleinen Buchstaben X Hexadezimalzahl mit gro en Buchstaben Bei Dezimalzahlen k nnen Sie die gew nschte Ausgabebreite festlegen indem Sie die Anzahl der Zeichen mit angeben printf 10d 12 Dieser Befehl gibt die Zahl 12 rechtsb ndig mit 12 Zeichen Breite aus Es wird mit Leerzeichen aufgef llt Wenn die L ngenangabe mit einer 0 beginnt wird mit Nullen aufgef llt Bei Fliesskommazahlen k nnen Sie die Anzahl der Nachkommastellen festlegen printf 2f 12 345678 Dieser Befehl gibt 12 35 aus die Zahl wurde also korrekt aufgerundet Leider k nnen Sie bei Fliesskommazahlen nicht festlegen wie viele Stellen vor dem Komma angezeigt werden Es werden immer alle Ziffern angezeigt und die Zahl wird nicht rechtsb ndig ausgerichtet Achten Sie darauf dass Sie bei printf genau so viele Werte angeben wie Platzhalter im Text s
184. hliessen ein kleines K stchen an das Netzwerk des Servers an und erhalten damit bis zu 32 neue serielle Ports Diese funktionieren exakt so als w ren es lokale Ports im Server selbst Serielle Ports ber Ethernet funktionieren unter Windows Solaris und Linux sowie alle anderen g ngigen Betriebssystemen Im folgenden Kapitel stelle ich Ihnen eine entsprechende Ger teserie der Firma Digi vor 2 3 4 Digi Etherlite Die Digi Etherlite Ger te erweitern die seriellen Ports eines Servers um zwei acht sechzehn oder zweiunddreissig 1 DIGAN Schnittstellen Und wem das nicht genug sind der kann ohne weiteres mehrere dieser Ger te zusammen einsetzen Bei SMS Anwendungen werden Sie allerdings niemals mehr als 32 serielle Ports brauchen Connectware Digi Etherlite Ger te funktionieren unter Linux Windows und Solaris einwandfrei Aus Sicht der Software funktionieren diese Schnittstellen exakt so als w ren es lokale Schnittstellen innerhalb des Servers Durch den Ethernet Anschluss zum Server k nnen Sie die Modems weit vom Server entfernt aufstellen ohne dazu zahlreiche teure Kabel verlegen zu m ssen Digi Etherlite Ger te besitzen eine interne Elektronik zur Unterdr ckung von Masseschleifen Masseschleifen kennen Sie vieleicht von Ihrem Heim PC der mit der Stereoanlage verbunden ist H ufig hat man dort st ndig ein l stiges Brummen in der Audio Leitung dass man durch den Einbau von bertragern in die Audio Leitungen oder in das A
185. hnittstellen Name Hier geben Sie den Namen der seriellen Schnittstelle an an die das Modem angeschlossen ist Unter Linux heist der erste serielle Anschluss dev ttySO und der zweite heisst dev ttyS1 Unter Windows heissen sie dev com1und dev com2 Solaris nennt den ersten seriellen Anschluss dev cuaa und den zweiten dev cuab incoming boolean oder Zahl Wenn Sie hier yes oder 1 schreiben liest smsd regelm ssig empfangene Kurzmitteilungen aus dem Modemspeicher aus Der Vorgabewert ist no Bitte beachten Sie dass manche Modems nicht senden k nnen wenn der Empfangsspeicher voll ist Wenn Sie keine Nachrichten empfangen wollen und dieses Problem haben lassen Sie die betroffenen SIM Karte vom Netzbetreiber in eine schwarze Liste eintragen Sie bekommen dann nie wieder SM an diese SIM Karte zugestellt Das Auslesen empfangener SM hat beim Wert yes oder 1 geringere Priorit t als das Senden von SM Smsd liest empfangene SM nur aus w hrend es nichts zu senden gibt Wenn Sie hier 2 schreiben verh lt es sich anders herum Dann hat das Empfangen Vorrang und smsd sendet nur wenn es keine weitere empfangene Kurzmitteilung gibt queues Liste mit Warteschlangen Namen Durch diese Zeile legen Sie fest welche Warteschlangen das Modem bedienen soll Beziehen Sie sich hier auf die Namen die Sie im queues und provider Abschnitt gew hlt haben Seite 175 SMS Anwendungen pin Zahl Geben Sie hier die Geheim
186. hrend alles andere als false off interpretiert wird Smsd ignoriert alle unbekannten Informationen im Vorspann Sie k nnen also beliebige Notizen hinzuf gen z B Anmerkung Nur ein Test Smsd kennt das Wort Anmerkung nicht und ignoriert daher die gesamte Zeile Zeilenumbr che d rfen wahlweise im Unix Format oder im Dos Format gespeichert werden Bei empfangenen Nachrichten speichern die SMS Server Tools immer im Unix Format Der Unterschied zwischen Unix und Dos Zeilenumbr chen ist Unix speichert einen Zeilumbruch mit einem Steuerzeichen Code 10 Dezimal Dos speichert einen Zeilumbruch mit zwei Steuerzeichen Code 13 und Code 10 Falls Sie unter Windows versuchen empfangene SM mit Notepad zu lesen werden Sle entt uscht sein Notepad kann keine Textdateien im Unix Format lesen Nahezu jeder andere Texteditor kann es jedoch z B Wordpad Word und Editpad Seite 180 SMS Anwendungen 5 6 1 Texte senden Wenn Sie eine SM senden m ssen Sie wenigstens die Telefonnummer des Empf ngers und nat rlich den Text angeben Eine einfache Datei sieht so aus To 491721234567 Hallo wie geht es Dir Wie bereits erw hnt m ssen Sie alle Telefonnummern im internationalen Format schreiben Das vorangestellte Plus Zeichen d rfen Sie dabei weglassen Wenn Sie m chten d rfen Sie noch weitere Angaben in den Vorspann einf gen From Stefan To 491721234567 Flash yes Hallo wie geht es Dir From Name oder Telefonnumm
187. hten k nnen Sie einfach zwei Server gleichzeitig laufen lassen Wenn einer davon ausf llt l uft der andere noch weiter und sie haben keinen Service Ausfall Die SMS Server Tools sind so entwickelt worden dass Sie auf mehreren Servern gleichzeitig laufen k nnen Was Sie dazu zus tzlich brauchen ist lediglich ein Fileserver auf den alle SMS Server gleichzeitig zugreifen k nnen Ich nehme an dass Sie bereits einen solchen Server besitzen Benutzen Sie den Fileserver nicht f r andere Zwecke Ein Fileserver der keine andere Aufgabe hat l uft sehr zuverl ssig und ist weitgehend Wartungsfrei Ausf lle sind an dieser Stelle kaum zu bef rchten Wenn Sie beabsichtigen zwei Fileserver zur Redundanz zu verwenden dann schlage ich Ihnen vor die Webseite http www linux ha org zu lesen Diese Seite befasst sich mit dem Aufbau redundanter Fileserver Seite 32 SMS Anwendungen 3 6 Firewall Sobald Ihre Server in einem gr sseren Netzwerk eingebunden sind oder gar ins Internet ist die Installation einer Firewall notwendig Die Firewall sch tzt Ihre Server vor unbefugtem Zugriff z B durch Hacker Firewalls blockieren den Zugriff durch das Netzwerk und erlauben nur bestimmte Verbindungen von gew nschten Quellen Beispielsweise k nnen Sie die Firewall so konfigurieren dass sich nur der Administrator von seinem Arbeitsplatz PC aus die Server einloggen kann w hrend die Internet Kunden nur Zugriff auf den Webserver haben Eine
188. i kan vom Besitzer gelesen und beschrieben werden Die Gruppe und andere d rfen sie nur lesen Die Datei wurde vom Benutzer SF erstellt der Mitglied in der Benutzergruppe unknown ist Die Datei ist 12546 Bytes gro wurde am 1 Oktober zuletzt ge ndert und hei t termcap Niemand darf die Datei ausf hren denn es gibt kein x Recht es ist n mlich kein ausf hrbares Programm Seite 73 SMS Anwendungen 4 3 5 Vergleich Windows Unix Befehle Da sie vermutlich mit DOS Windows Befehlen vertraut sind m chte ich Ihnen die wichtigsten Befehle anhand einer Vergleichstabelle auflisten Windows Befehl dir c windows Inhalt des Windows Verzeichnisses anzeigen Unix Befehl Is I cygdrive c windows cd temp cd tmp Ins Temp Verzeichnis gehen md test mkdir test Ein neues Verzeichnis mit Namen test anlegen rm test rmdir test Das Verzeichnis test entfernen del hallo rm hallo Die Datei hallo l schen deltree muell rm R muell Das ganze Verzeichnis muell mitsamt Inhalt l schen befehl Hilfe zum Befehl anzeigen befehl help more befehl h more befehl h more Windows Taskmanager Bricht das Programm hart ab ohne R cksicht auf Verluste Dies entspricht einem mehrmaligen Klick auf Task Beenden im Windows Taskmanager ps ef kill nummer kill 9 nummer attrib w dateiname Nimmt allen Usern a das Schreibrecht auf die Datei egal Anstelle v
189. ichen Rechnern laufen lassen aber dann ben tigen Sie ein Netzlaufwerk auf das beide Rechner gemeinsam zugreifen bergabepunkt zwischen Sendmail und den SMS Server Tools ist das Verzeichnis f r die herausgehende Warteschlange also normalwerweise var spool sms outgoing Legen Sie unter Unix einen User mit dem Namen sms an Stellen Sie sicher dass Sendmail Nachrichten an diesen User korrekt ausliefert Wenn Sendmail nicht korrekt funktioniert schauen Sie bitte in das Kapitel 4 5 Pr fen Sie Sendmail indem Sie diesen Befehl eingeben lusr lib sendmail sms Hallo lt Strg D gt Loggen Sie sich jetzt als User sms ein und pr fen Sie den Posteingang oder schauen Sie in die Datei var spool mail sms Sie sollten die eMail mit dem Text Hallo sehen k nnen Sendmail stellt lokale eMails mit dem Programm procmail zu Jeder User kann Procmail dazu anweisen empfangene eMails woanders zu speichern als in der normalen eMail Datei Genau diese Funktion nutzen wir jetzt aus Loggen Sie sich als User sms ein Legen Sie dann die Datei procmailrc im Home Verzeichnis an Sie soll diesen Inhalt haben VERBOSE off MAILDIR var spool mail DEFAULT var spool mail sms LOGFILE var log procmail 0 TOsms usr local bin email2sms Wenn Sie jetzt eine eMail an den SMS User senden wird sie nicht in dessen Posteingang gespeichert sondern an das Script email2sms gesendet Dieses Script wandelt die eMail in eine SMS Datei um die dann umgeh
190. ie bertragungsgeschwindigkeit der seriellen Schnittstelle fest Alle mir bekannten Modems funktionieren mit dem Vorgabewert 19200 Bits pro Sekunde Wenn Ihr Modem nicht reagiert versuchen Sie es mit 9600 Bei Infrarot Schnittstellen hat diese Einstellung keine Bedeutung weil dort die bertragungsrate vom Betriebssystem automatisch vorgegeben wird rtscts boolean Wenn Sie hier no schreiben verzichten die SMS Server Tools auf Hardware Handshake Leitungen Manche Handies und viele nicht originale Anschlusskabel sind billig konstruiert man hat dort die Handshake Leitungen einfach weggelassen Wann immer es geht sollten Sie Hardware Handshake unbedingt benutzen also auf yes stellen oder diese Zeile ganz weglassen Hardware Handshake stellt sicher dass der Computer nicht zu schnell mit dem Modem spricht cs_convert boolean Der Vorgabewert ist yes und bedeutet dass die SMS Server Tools die Zeichens tze aller Kurzmitteilungen in den Zeichensatz ISO 8859 15 bersetzen Unter Windows wird dieser Zeichensatz Ansi genannt Diese bersetzung ben tigen Sie um SMS unter Windows oder Unix richtig darstellen zu k nnen und um umgekehrt Text korrekt als SMS senden zu k nnen Wenn Sie die Einstellung no verwenden werden die Texte unver ndert bertragen bis auf eine Ausnahme Das Zeichen wird in den ASCII Code 183 bersetzt denn im GSM Alphabet hat es den Code 0 und der Code 0 markiert das Ende eines Textes in nahezu jedem
191. ie Funktion l scht zuerst die lteste Protokolldatei da diese jetzt verfallen soll rm 1 2 gt dev null 2 gt amp 1l Mittels Ausgabeumleitung werden Fehlermeldungen unterdr ckt Diese treten auf wenn die zu l schende Datei gar nicht existiert Wir wollen in diesem Fall keine Fehlermeldung sehen num 2 while num gt 1 do before expr num 1 mv 1 before 1 num gt dev null 2 gt amp 1 num before done Nun sollen die bereits vorhandenen alten Protokolldateien umbenannt werden indem die Ziffer am Ende des Dateinamens um eins h her gesetzt wird Die Variable num beginnt mit der h chsten Nummer und wird bei jedem Schleifendurchlauf um 1 verringert bis sie nicht mehr gr sser als 1 ist Mittels expr Befehl und Ausgabeumleitung wird die Variable before auf die Nummer davor gesetzt also eins weniger Innerhalb der Schleife ist num also die neue Nummer und before die alte Nummer Der mv Befehl benennt die alte Datei in den neuen Namen um Dabei wird der Dateiname aus 1 und den Nummern kombiniert Hier wird eine eventuelle Fehlermeldung wieder wie beim rm Befehl unterdr ckt Nach der Schleife wird die gerade aktuelle Protokolldatei in irgendwas 1 umkopiert und dann wird Sie durch nichts berschrieben also quasi geleert ep 51 SL L cp dev null 1 Wenn 7 Dateien aufbewahrt werden erledigt das Script insgesamt folgende Aufgaben e Irgendwas 7 wird gel scht e dateiname 6 wird in dateiname 7 umbenannt e
192. ie dann innerhalb des awk Scriptes zu benutzen Seite 151 SMS Anwendungen Sie haben sicher bemerkt dass hier gar keine Eingabedatei eingelesen wird Hinter der BEGIN Bedingung steht einfach die Mathematische Berechnung Da es keine Bedingung gibt die auf Textzeilen angewendet wird darf ausnahmsweise auf die Angabe einer Textdatei verzichtet werden 4 10 7 Operatoren Die vorherigen Kapitel haben Ihnen bereits mathematische Additionen und Divisionen vorgef hrt Awk kennt die folgenden Operatoren Addition Subtraktion Multiplikation Division Modulus Exponentialfunktion Erh hen um 1 Verringern um 1 Awk kennt diese Zuweisungen Zuweisung Hinzuf gen zu Abziehen von Multiplizieren um Dividieren durch Modulus durch Exponentialfunktion Beispiele a Ergibt 3 a 5 Ergibt 8 ist identisch mit a a 5 b a 6 Ergibt 14 b Ergibt 15 ist identisch mit b b 1 b 3 Ergibt 5 ist identisch mit b b 3 Awk kennt die folgenden Vergleichsoperatoren gleich nicht gleich gr er als kleiner als gr er oder gleich kleiner oder gleich beinhaltet regul ren Ausdruck RE beinhaltet regul ren Ausdruck RE nicht Seite 152 SMS Anwendungen Beispiele if 1 Stefan Wenn das erste Wort Stefan ist damn if 1 gt 5 Wenn die erste Zahl gr er als 5 ist dann if 1 fan
193. ie nicht berraschen mysql gt select from anschriften id name vorname strasse plz ort 1 Mustermann Markus Bachstrasse 13 11111 Irgendwo 2 Musterfrau Michaela NULL 22222 Wasserdorf 2 rows in set 0 02 sec Legen Sie jetzt bitte noch eine dritte Adresse an damit Sie die Beispiele der n chsten Kapitel besser nachvollziehen k nnen insert into anschriften set name Mustermann vorname Sohnemann strasse Bachstrasse 13 plz 11111 ort Irgendwo Seite 93 SMS Anwendungen 4 7 6 Tabellen Auslesen Ihre Datenbank sollte momentan so aussehen mysql gt select from anschriften id name vorname strasse plz ort 1 Mustermann Markus Bachstrasse 13 11111 Irgendwo 2 Musterfrau Michaela NULL 22222 Wasserdorf 3 Mustermann Sohnemann Bachstrasse 13 11111 Irgendwo 3 rows in set 0 00 sec Die einfachste Form des select Befehles haben Sie bereits mehrfach angewendet und sind damit vertraut
194. ies weil sie keine Nachrichten senden k nnen wenn die SIM Karte voll ist Durch diese Option bewirken Sie dass smsd immer abwechselnd eine Nachricht sendet und empf ngt Ohne diese Option sendet smsd vorzugsweise alle Nachrichten bevor empfangene Nachrichten ausgelesen werden 5 2 3 2 Warteschlangen Die SMS Server Tools sortieren ausgehende Nachrichten in einzelne Warteschlangen f r die jeweiligen Netzbetreiber Dadurch bekommen Sie die M glichkeit durch Verwendung unterschiedlicher SIM Karten von unterschiedlichen Netzanbietern Kosten zu sparen Diese Funktion ist optional sie k nnen den kompletten queues Abschnitt weglassen wenn Sie keine Sortierung ben tigen Nach den Haupteinstellungen definieren Sie in der Konfigurationsdatei smsd conf die Namen der Warteschlangen und die zugeh rigen Verzeichnisnamen auf der Festplatte queues Name Verzeichnisname Name Verzeichnisname Name Verzeichnisname Benutzen Sie nur Buchstaben Ziffern und den Unterstrich vermeiden Sie Sonderzeichen Beispiel queues D1 var spool sms D1 D2 var spool sms D2 02 var spool sms 02 EPLUS var spool sms EPLUS QUAM var spool sms QUAM MOBILCOM var spool sms MOBILCOM 5 2 3 3 Netzanbieter In diesem Abschnitt geben Sie die Ortsvorwahlen der einzelnen Netzbetreiber an Die Software verwendet diese Einstellung um Nachrichten in Warteschlangen zu sortieren Fur jede Zeile im vorherigen Abschnitt queues muss es
195. iese Angabe weglassen wird keine schwarze Liste verwendet whitelist Dateiname Legt den Dateinamen der weissen Liste fest Wenn Sie diese Angabe weglassen wird keine weisse Liste verwendet checkhandler Programmname Zus tzlich zu den schwarzen und weissen Listen k nnen Sie auch externe Programme benutzen um zu entscheiden ob eine Nachricht gesendet werden darf oder nicht Bevor smsd eine Nachricht in die Netzbetreiber Warteschlangen sortiert startet es den Checkhandler und bergibt diesem als einziges Argument den Dateinamen des fraglichen SMS Files Wenn der Checkhandler mit Exitcode 0 endet wird die Nachricht gesendet ansonsten wird die nicht gesendet Wenn Sie keinen Checkhandler brauchen lassen Sie diese Angabe weg autosplit 0 1 2 oder 3 Seite 172 SMS Anwendungen Automatisches Teilen zu langer Textnachrichten ist deaktiviert Nachrichten werden geteilt ohne Nummerierung Nachrichten werden geteilt mit Nummerierung Nachrichten werden als verkettete Nachrichten gesendet die das empfangende Handy wieder zusammenf gt kann nicht jedes Handy Bin rdateien und Unicode Nachrichten Klingelt ne Logos etc werden niemals geteilt und d rfen maximal 140 Bytes gro sein receive_before_send boolean Wenn Sie diese Variable auf yes stellen stellt smsd sicher dass wenigstens ein Speicherplatz auf der SIM Karte leer ist bevor eine Nachricht gesendet wird Manche Modem brauchen d
196. ig Sinn denn man k nnte auch anstelle von schreiben Verkn pfungen dieser Art werden nur sehr selten gebraucht Ein sinnvolles Anwendungsbeispiel test16 sh bin sh echo Bitte geben Sie eine Zahl ein read Zahl if Zahl lt 10 o Zahl gt 100 then echo Die Zahl ist leiner als 10 oder gr sser als 100 else echo Die Zahl ist im Bereich 10 bis 100 fi Eine eher gebr uchlichere Variante mehrere Vergleiche zu verkn pfen is die folgende obwohl sie etwas langsamer ist Text1 Text2 amp amp Text3 Text4 8 8 ist eine UND Verkn pfung Text1 Text2 Text3 Text4 ist eine ODER Verkn pfung Dazu ein Beispiel test17 sh bin sh echo Bitte geben Sie eine Zahl ein read Zahl if Zahl 1t 10 L 2ahl gt 100 then echo Die Zahl ist leiner als 10 oder gr sser als 100 else echo Die Zahl ist im Bereich 10 bis 100 fi 4 9 9 4 case esac Wenn Sie viele if und elif Befehle verketten kann der Programmtext schnell un bersichtlich werden Ein schlechtes Beispiel is test18 sh Seite 133 SMS Anwendungen bin sh echo Geben Sie eine Zahl ein read Zahl if Zahl eq 1 then echo Sie haben eine Eins elif Zahl eq 2 then echo Sie haben eine Zwei elif Zahl eq 3 then echo Sie haben eine Drei elif Zahl eq 4 then echo Sie haben eine Vier else echo fi eingegeben eingegeben eingegeben eingegeben
197. ile i lt 6 Befehle Si i 1 Seite 113 SMS Anwendungen 4 8 6 5 foreach Die foreach Schleife dient dazu mit jedem Element eines Arrays etwas zu tun namen 1 Mary namen 2 Hans namen 3 Maxi namen 4 Hannes foreach namen as n print Der Name ist n lt br gt Dieses Beispiel erzeugt die Bildschirmausgabe Der Name ist Mary Der Name ist Hans Der Name ist Maxi Der Name ist Hannes Zu foreach gibt es noch die eine erweiterte Version bei der Sie auch den Schl ssel abfragen k nnen monate Januar kalt monate April wechselhaft monate Juli warm foreach monate as schluessel gt wert print Der schluessel ist wert lt br gt Dieses Beispiel erzeugt die Bildschirmausgabe Der Januar ist kalt Der April ist wechselhaft Der Juli ist warm 4 8 6 6 break continue und exit Eine Schleife k nnen Sie ausnahmsweise abbrechen indem Sie den break Befehl benutzen birnen 0 while birnen lt 1000 print Wir nehmen noch eine Birne dazu lt br gt if birne 12 faul true if faul true break birnen birnen 1 print Wir haben jetzt entweder 1000 Birnen oder wegen einer faulen abgebrochen Diese Schleife addiert immer mehr Birnen bis es die 1000 erreicht hat Wenn aber eine faule Birne erkannt wird bricht die Schleife ab Um dies m glichst einfach zu demonstrieren wird die 12 Birne immer als Faul
198. ilenumbruch Ausgabeformat f r Nummern Anzahl von Feldern in der aktuellen Zeile Nummer der Zeile bezogen auf den Anfang der ersten Datei Nummer der Zeile bezogen auf den Anfang der aktuellen Datei Name der aktuellen Eingabedatei Anfang einer Zeichenkette geh rt zum Befehl match L nge einer Zeichenkette geh rt zum Befehl match Die aktuelle Zeile Das erste Feld der aktuellen Zeile Das zweite Feld der aktuellen Zeile Das dritte Feld der aktuellen Zeile 4 10 6 Variablen an der Kommandozeile bergeben Manchmal m chten Sie Variablen an der Kommandozeile bergeben Das kommt besonders oft vor wenn Sie awk innerhalb eines Shell Scriptes benutzen Ein simples Beispiel oder so bin sh echo Wir haben awk v fruechte 36 v personen 12 BEGIN print fruechte personen echo pfel pro Kind bin sh aepfel 36 kinder 12 echo Wir haben awk v fruechte aepfel v personen kinder BEGIN print fruechte personen echo pfel pro Kind oder auch so bin sh aepfel 36 kinder 12 ergebnis awk v fruechte aepfel v personen kinder BEGIN print fruechte personen echo Wir haben ergebnis pfel pro Kind All diese Beispiele erzeugen fast die gleiche Ausgabe Das letzte Beispiel hat nur einen Echo Befehl und erzeugt daher eine einzeilige Ausgabe Sie sehen wie man mit Hilfe der Option v Variablen von au en setzen kann um s
199. ine Zahl angeben welche als Return Wert an die Shell bergeben wird Shell Scripte k nnen diesen Wert dann auswerten falls gew nscht Exit oder exit O wird blicherweise f r erfolgreiches Programmende verwendet w hrend andere Werte einen Fehler bedeuten Das ist zwar keine Vorschrift aber es hat sich so eingeb rgert 4 10 13 Sonderzeichen in print Sie haben mit print bereits Texte und variablen ausgegeben Print kennt die noch zwei Sonderzeichen Zeilenumbruch Tabulator Beliebiges Zeichen als Oktalzahl Print kann seine Ausgaben in Dateien schreiben anstatt auf die Standard Ausgabe welche meist der Bildschirm ist print Hallo gt Dateiname print Hallo gt gt Dateiname Die zweite Version h ngt an eine vorhandene Datei an w hrend die erste Version eine neue Datei anlegt und ggf vorhandene Datei l scht Print kann au erdem Unterprogramme starten und seine Ausgabe an dieses Programm bergeben print Stefan nMarkus nJessica nOlivia sort Der obige Befehl schreibt vier Namen und bergibt diese an den Unix Befehl sort Sort sortiert die Namen alphabetisch Seite 155 SMS Anwendungen 4 10 14 Printf und sprintf Printf verwendet man um eine Zeichenkette ohne abschlie enden Zeilenumbruch auszugeben printf Zeichenkette Man kann printf auch verwenden um Variablen in einem besonderen Format auszugeben printf Zeichenkette Variable Variable Variable In
200. infach gel scht incoming Verzeichnisname Legt fest wo empfangene Nachrichten abgespeichert werden Der Vorgabewert ist var spool sms incoming sent Verzeichnisname Wenn Sie gesendete Nachrichten aufbewahren wollen geben Sie dieses Verzeichnis an mypath Verzeichnisname Geben Sie hier das Verzeichnis an wo getsms und putsms installiert wurden also normalerweise usr local bin Das ist auch der Vorgabewert wenn Sie keine Angabe machen logfile Dateiname oder Zahl Name der Protokolldatei Wenn Sie keinen Namen angeben wird sys Syslog D mon von Unix verwendet bzw das Ereignisprotokoll von Windows Wenn Sie einen Dateinamen angeben werden alle Informationen mit Zeitstempel und Programmname in die Datei geschrieben Sie k nnen auch eine Zahl angeben diese wird dann als Dateihandle interpretiert Sie k nnen solche Nummern nur zusammen mit Shell Ein Ausgabeumleitung benutzen Die 1 ist die Standard Ausgabe also normalerweise der Bildschirm Durch Ein Ausgabeumleitung k nnen Sie diese auch in Dateien oder andere Programme umleiten loglevel Zahl Legt die Detailstufe der Protokolldatei fest Der Vorgabewert ist 4 wenn Sie eine Protokolldatei verwenden oder 7 wenn Sie syslog verwenden Der Wert O bedeutet dass gar nichts protokolliert wird Es werden alle Informationen protokolliert deren Stufe kleiner oder gleich der Zahl ist debug Alle Details werden protokolliert sogar die Modembefehle info Informatione
201. ingung Aktion Die Bedingung legt fest welche Textzeilen durch die Aktion betroffen sein sollen Ich m chte auf die Beispiele des vorherigen Kapitels zur ck kommen Im Beispiel 1 wurde keine Bedingung angegeben Die Aktion print 2 betrifft also alle Zeilen der Textdatei Im Beispiel 2 wurde als Bedingung Hallo angegeben Das ist ein Regul rer Ausdruck wie bei grep der besagt dass alle Zeilen mit dem Wort Hallo betroffen sind Im Beispiel 3 wurde als Bedingung NR 3 angegeben Es ist nur die Zeile betroffen deren Nummer 3 ist NR ist eine Variable die f r die Zeilennummer steht Erstellen Sie nun mit Ihrem bevorzugten Texteditor ein awk Script Es soll test1 awk hei en und so aussehen NR 1 print Die erste Zeile ist 0 NR gt 1 print Danach kommt 0 anzahl anzahl 1 Hallo print Hallo ebenfalls hallo hallo 1 END print Nach Zeile 1 kamen anzahl Zeilen print Hallo wurde hallo mal gez hlt Dieses Script hat vier bedingte Aktionen Sie sehen hier wie man mehrere Aktionen in eine Scriptdatei schreibt und Sie sehen auch dass eine Aktion durchaus aus mehr als nur einem einzelnen Befehl bestehen kann Die erste Aktion gilt nur f r die erste Textzeile Sie gibt einen Kommentar aus und dahinter die ganze Zeile Die zweite Aktion gilt f r alle Zeilen au er der ersten NR bedeutet Record Number oder einfacher gesagt Zeilennummer Auch diese Aktion gibt einen Kommentar aus Au erdem
202. inzelnen Spalten speichern werden Die Anzahl der Reihen bleibt zun chst unbestimmt Wenn Sie eine Tabelle gestalten benutzen sie immer den kleinsten Datentyp der f r Ihre Anwendung ausreicht Denn so sparen sie nicht nur Speicherplatz sondern sorgen zugleich auch f r die bestm gliche Geschwindigkeit Die folgende Tabelle gibt einige Datentypen wieder die MySQL unterst tzt ganze Zahl im Bereich 2147483648 bis 2147483647 ganze Zahl im Bereich 9223372036854775808 bis 9223372036854775807 Fliesskommazahl im Bereich 3 4E38 bis 3 4E38 mit 4 Byte Genauigkeit Fliesskommazahl im Bereich 1 79E308 bis 1 79E308 mit 8 Byte Genauigkeit Datum im Format YYYY MM DD Zeit im Format HH MM ss Datum und Zeit im Format YYYY MM DD HH MM ss Ein Zeitstempel im Format YYYYMMDDHHMMss Wird automatisch bei jedem Schreibzugriff auf den Datensatz gesetzt Zeichenkette mit n Zeichen max 255 Zeichenkette mit 0 255 Zeichen Zeichenkette mit 0 65535 Zeichen Zeichenkette mit 0 65535 Zeichen Zeichenkette mit 0 4294967295 Zeichen Zeichenkette mit 0 4294967295 Zeichen Wenn Sie ein Datum speichern d rfen Sie die Jahreszahl auch zweistellig schreiben MySQL wandelt die Jahreszahl automatisch in vierstellige Darstellung um MySQL Erlaubt die Verwendung von 00 in Datum und Uhrzeit also z B 0000 00 00 00 00 00 Zeichenketten vom Typ CHAR haben einen festen Speicherplatzbedarf Sie k nnen k
203. ion verweisen Sie k nnen diese direkt von der PHP Webseite http www php net abrufen Die Webseite hat eine integrierte Suchmaschine und enth lt zus tzlich Kommentare von unterschiedlichen PHP Anwendern die oft n tzlich sind Ich m chte Ihnen empfehlen sich zun chst in der angegebenen Reihenfolge mit folgenden Funktionsreferenzen des PHP Handbuches zu besch ftigen Datums und Zeitfunktionen e Mathematische Funktionen e String Funktionen Funktionen des Dateisystems Array Funktionen e Fehlerbehandlung und Logging Funktionen HTTP Funktionen e Mail Funktionen MySQL Funktionen Regul re Ausdr cke Wenn Sie danach noch nicht genug haben dann schauen Sie sich die restlichen Funktionsreferenzen an Sie sind so ausf hrlich beschrieben vor allem auf der PHP Webseite dass es keinen Sinn macht sie in einem Buch nochmal extra zu beschreiben Seite 123 SMS Anwendungen 4 9 Shell Script Programmierung Unter Unix werden viele Aufgaben durch Shell Scripte anstatt mit echte Programme erledigt Shell Scripte k nnen schnell programmiert und ge ndert werden Der Nachteil von Shellscripten ist dass sie relativ langsam sind Bei einfachen Aufgaben ist das normalerweise nicht schlimm Dos Anwender kennen den Begriff Shell Script nicht aber sie kennen Batch Dateien Im Grunde genommen ist dies das Selbe Shell Scripte k nnen allerdings deutlich mehr W hrend man unter Dos nur selten ber die sequentielle Abarb
204. isten in Dateiform erzeugen oder einfach nur einen einzigen Wert abfragen Da Sie vermutlich auch die letzten drei Befehle des vorherigen Kapitels brav abgetippt haben haben Sie jetzt keine Test Datenbank mehr an der Ich Ihnen die n tigen Befehle zeigen kann Legen Sie sich daher bitte jetzt erst einmal eine neue Test Datenbank an create database demo use demo create table tabelle id INTEGER AUTO_INCREMENT PRIMARY KEY NOT NULL wert INTEGER insert into tabelle set wert 10 insert into tabelle set wert 13 insert into tabelle set wert 19 insert into tabelle set wert 21 insert into tabelle set wert 57 Sie haben nun eine kleine Demo Tabelle angelegt die so aussieht mysql gt select from tabelle 4 4 id wert 4 4 11 10 I 2 13 I 31 19 41 21 il 5 57 f 5 rows in set 0 00 sec Die gleiche select Abfrage k nnen Sie auch im nicht interaktiven Modus an der Shell Eingabeaufforderung oder innerhalb von Shell scripten starten Geben Sie erstmal exit ein um den mysql Client zu verlassen Danach k nnen Sie diesen Befehl eingeben mysqli u root p xxxxx D demo e select from tabelle Beachten Sie dass zwischen p und dem Passwort hier xxxxx kein Leerzeichen stehen darf Mit D legen Sie die Datenbank fest wie beim use Befehl und mit e legen Sie die den SQL Befehl fest der ausgef hrt werden soll Das Ergebnis wird wie oben als gerahmte Tabelle angezeigt und dana
205. it Hilfe eines Alarm Programmes k nnen Sie die SMS Server Tools sehr einfach an diese Systeme ankoppeln Bei welcher Wichtigkeits Stufe Alarm Programme gestartet werden bestimmen Sie durch die Zeile alarmlevel in der Konfigurationsdatei smsd conf Den Alarm Programmen werden die folgenden Argumente bergeben Das Schl sselwort ALARM Ein Datum im Format YYYY MM DD Die Uhrzeit im Format hh mm ss Die Wichtigkeit des Alarms eine Ziffer Der Name des betroffenen Modems oder SMSD Der Alarm Text ist mit dem Text in der Protokolldatei identisch Seite 191 SMS Anwendungen 5 11 Schwarze und wei e Listen Schwarze Listen sind Textdateien in denen alle Telefonnummern aufgelistet werden die keine SM erhalten d rfen Sie aktivieren eine Schwarze Liste indem Sie den Dateinamen der Liste in die Konfigurationsdatei smsd conf eintragen blacklist etc smsd black Wenn Sie keine schwarze Liste haben darf jeder Kurzmitteilungen bekommen Weisse Listen sind Textdateien in denen alle Telefonnummern aufgelistet werden die SM empfangen d rfen whitelist etc smsd white Wenn Sie eine weisse Liste haben bekommen nur noch die dort gelisteten Telefonnummern SM zugestellt Wenn Sie keine weisse Liste haben darf jeder SM bekommen abgesehen von denen die in der schwarzen Liste stehen Was passiert wenn eine Telefonnummer in beiden Listen steht Dann ist die schwarze Liste wichtiger Neben
206. iten mit Cron Jobs Cron Jobs sind Programme die zu bestimmten Uhrzeiten wiederholt ausgef hrt werden sollen Unter Windows ben tigen Sie dazu das Programm nnCron Lite Unter Linux und Solaris geh rt diese Funktion hingegen zum Standard Unter Windows m ssen Sie dazu nur die Datei c programme cron cron tab editieren Unter Unix geben Sie den Befehl EDITOR vi export EDITOR crontab e ein um die Cron Tabelle zu ver ndern Unix startet dann denn Editor vi Sie k nnen stattdessen auch jeden anderen Texteditor benutzen den Sie bevorzugen z B dtpad oder kedit Bitte beachten Sie dass unter Unix jeder User seine eigene Cron Tabelle hat Sie werden warscheinlich meistens die Cron Tabelle von root ndern wollen loggen Sie sich also vorher als root ein Egal welchen Editor sie verwenden und welches Betriebssystem Sie bevorzugen das Format der Cron Tabelle ist immer das Selbe Ein Beispiel datei tmp muell txt 1 31 rm Sdatei 10 cp tmp logfile alt tmp logfile neu 5 1 1 cp tmp logfile alt tmp logfile montag 0 1 3 u u rm tmp unsinn txt Das ist ein Kommentar Die erste Zeile setzte die Umgebungsvariable datei auf tmp muell txt Alle Cronjobs k nnen diese Variable sehen w hrend sie laufen Das werden Sie sicher nur sehr selten ben tigen Sie k nnen beliebig viele Variablen auf diese Art setzen Die folgenden vier Zeilen starten Programme zu bestimmten Uhrzeiten Jede Zeile hat genau 5 Zeitangaben Min
207. k Befehla ii A das 125 403 Zeichenkelten A db 126 O O NO 127 4 9 5 Ein Ausgabe Umleitung in Dateien 4 44400444400nsnnnnnnnnnnnnennnnnnnnnnnnnnnennnnnnnnnnnnnnnnonnnnnnnnnnnnnnnnennnnnnnnnnnnn nen nnnnnnann 129 4 9 6 Ein Ausgabe Umleitung in Programme 444424400nnna0nnnnnnnannnnnnnnnnnnnnnnnnnnnnnnnnnnnannnnnannnnnnnnnnnnnnnnnnnannnnnannnnnnnnnnnnnnn 129 4 9 7 Ein Ausgabeumleitung in Variablen ainssi a iia a i a aiaa 129 4 9 8 Mehrere Befehlein einer Zeile e nee nn ii ETENEE Eiai EA e ARTS 130 4 9 9 KONtTOlSTTUKLUTON 00 iria ii a AAA AAA AAA AA 131 ARIANE eS A A O ars 131 419 92 Vergleiche 22 22th TA O Heel 132 4 9 9 3 Mehrere Vergleiche verkn pfen 2442240044400nnnnnnnnnnnnnnnnnnnnnnannnnnnnnnnnnnonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 133 ADAC OS ii ia ii Add AAA AA rt 133 49 9 0 While O OMS econo reiste A E A E charsnranhpeshRgeh Fe are E ARENAS RISE 135 4 9 9 6 for in do dONe NT 135 2 9 9 7 x break continue und iexit ironiaa een RE En In IE En Nee 136 AI NA 137 4 9 1712 Spezielle Vana DER A A da E 138 4 9 123 Mebr als NEU ALGUNAS ia a o 139 4 9 13 Arithmetische Ausdr cke mit previa li dida dais 140 49 14 Fehlermeldungen ssanie ts un ii 141 4 9 15 N tzliche HilfSprogra MM 0000 pala cd 142 A o E E T OIRER FETTE NENLTCFERTERSTER 142 49 15 2 C t no upina a ERS RRETEHETERSETUER EEE TE LRRERSUDERREEETUTENSENTEERTULERREUEREEURTE
208. l formail f I To musterman irgendwo de lt tmp mail QE4F3AB9 Alle diese Befehle ndern nicht die Datei selbst sondern zeigen das Ergebnis auf dem Bildschirm an Sie k nnen diese Ausgaben jeweis in Dateien oder in Variablen umleiten formail zx From lt tmp mail QE4F3AB9 gt neuer_dateiname from formail zx From lt tmp mail QE4F3AB9 echo Der Absender ist from Seite 84 SMS Anwendungen 4 6 Arbeiten mit FTP FTP Schnittstellen erm glichen Ihnen die bertragung von Dateien zwischen mehreren Computern auch im Internet Das FTP Protokoll ist ist der kleinste gemeinsame Nenner den alle Computer unterst tzen Bei FTP unterscheidet man zwischen dem FTP Server und dem FTP Client Der Server stellt ein oder mehrere Verzeichnisse seiner Festplatte f r die Clients zur Verf gung Unter Windows brauchen Sie dazu den War FTP D mon der anhand seiner grafischen Oberfl che konfiguriert wird Unter Unix brauchen Sie den inet Daemon der zur Standardinstallation geh rt Jeder regul re Unix User kann sich mit einem FTP Client einloggen und hat Zugriff auf alle Verzeichnisse und Dateien auf die er auch in einer Telnet Session zugriff h tte Das heist dass man den FTP Server unter Unix nicht extra konfigurieren muss Der Client verbindet sich mit dem Server und sendet oder empf ngt ausgew hlte Dateien Die n chsten Kapitel beschreiben wie das geht 4 6 1 FTP Client benutzen Jedes Betriebssystem wird mit
209. l Die zweite Zeile jedoch ist die Ausgabe des PHP Programmes Sie kennzeichnen PHP Programme durch zwei Dinge durch die Dateiendung php anstatt html e durch lt php und gt um den Code herum Sie k nnen innerhalb einer Datei mehrere PHP Programme schreiben Diese werden dann von oben nach unten der Reihe nach ausgef hrt Beispiel lt html gt lt body gt Dies ist meine erste dynamische Webseite mit PHP Code lt p gt Heute ist der lt php print strftime Sd Sm Y gt und es ist lt php print strftime H 3M 3S gt Uhr lt body gt lt html gt Speichern Sie sich diese Datei unter dem Namen test3 php ab Sie erzeugt im Webbrowser exakt die gleiche Ausgabe wie test2 php Seite 105 SMS Anwendungen 4 8 3 print printf und sprintf Im vorherigen Kapitel haben Sie den print Befehl benutzt um Ausgaben zu erzeugen print Hallo erzeugt die Ausgabe Hallo print Hallo nWelt erzeugt die Ausgabe Hallo Welt Anmerkung Im Webbrowser werden Sie den Zeilumbruch nicht direkt sehen weil Webbrowser grunds tzlich keine Zeilenumbr che anzeigen Lassen Sie sich vom Web Browser den Seiten Quelltext anzeigen dann sehen Sie das Ergebnis wie oben dargestellt Die Zeichenfolge n wird Escape Sequenz genannt Sie wird nicht 1 1 ausgegeben sondern durch einen Zeilenvorschub ersetzt Weitere gebr uchliche Escape Sequenzen sind wenn Sie das Zeichen selbst ausgeben wollen wenn Sie
210. l l scht das erste Argument und verschiebt alle anderen um eine Position nach links Aus 2 wird also 1 aus 3 wird 2 und so weiter Den Shift Befehl k nnen sie beliebig oft benutzen und so kommen Sie auch an Argumente heran die ber 9 hinaus gehen Seite 139 SMS Anwendungen 4 9 13 Arithmetische Ausdr cke mit expr Shell Skripte k nnen keine mathemaischen Ausdr cke berechnen Der Ausdruck Ergebnis 1 2 funktioniert so nicht Mathematische Ausdr cke muessen Sie mit dem Hilfsprogramm expr berechnen Ergebnis expr 1 2 echo Ergebnis Leider k nnen Sie mit expr nur Integer Zahlen ohne Nachkommastellen berechnen Die folgenen Ausdr cke werden von expr verstanden Addition Subtraktion Multiplikation Division Rest einer Division Modulus Liefert Anzahl Buchstaben vom Text beginnend bei Start substr Hallo 2 3 liefert all Liefert die Position wo als erstes einer der Buchstaben steht index Hallo ab liefert 2 Liefert die L nge des Textes Vergessen Sie die Leerzeichen nicht und beachten Sie dass der Stern in der Shell eine besondere Bedeutung hat Sie m ssen daher immer ein Backslash vor den Stern schreiben Das gilt auch f r Klammern In Ausdr cken k nnen Sie Klammern benutzen um die Rangfolge festzulegen Ergebnis expr 1 2 3 echo Ergebnis 9 Text Hallo Laenge expr length Text echo Laenge 5 expr 6 5 30 Der letzte
211. lefon gespeichert und angezeigt Derzeit k nnen Sie MMS Anwendungen nur in direkter Zusammenarbeit mit den GSM Netzbetreibern entwickeln Seite 10 SMS Anwendungen 2 Hardware und Software In diesem Kapitel stelle ich Ihnen exemplarisch geeignete Hardwarekomponenten vor und die in diesem Buch verwendete Software Da die Hardware Hersteller sehr schnell neue Ger te auf den Markt bringen kann dieses Kapitel nie ganz aktuell sein Wenn Sie die Hersteller ansprechen werden diese Sie gerne ber die jeweils aktuellen Nachfolger der hier vorgestellten Ger te informieren 2 1 SUN Server Die Firma SUN Microsystems liefert Hardware mit h chster Qualit t SUN Server sind nicht nur f r ihre hohe Performance bekannt sondern auch f r geringe Ausfallzeiten Verglichen mit Intel basierten Computern PC s l uft das Multitasking herausragend fl ssig und sauber SUN Server k nnen ohne M he weit ber 1000 Programme gleichzeitig ausf hren ohne dass der Betrieb des Servers ins Stocken ger t Der Technische Support von SUN arbeitet vorbildlich sowohl was Reaktionszeiten angeht als auch die fachliche Kompetenz des Personals Sun Server werden blicherweise mit dem Betriebssystem Solaris ausgeliefert Sun bietet jedoch auch Windows und Linux kompatible Server an 2 2 PC Server PC Server laufen mit dem Betriebssystem Linux oder Windows Es werden sehr viele unterschiedliche Ger te angeboten Achten Sie beim Kauf besonders
212. leme hindeuten Ein Modem sendet nichts mehr Ein Modem empf ngt nichts mehr Ein Modem ist voll ausgelastet Kapazit tsengpass Sollte der dritte Fall h ufig eintreten bleiben Ihnen drei L sungsm glichkeiten Sie senden weniger Kurzmitteilungen pro Stunde e Sie f gen weitere Modems hinzu e Sie tolerieren l ngere Verz gerungen und erh hen die Wartezeit von 3600 Sekunden auf eine l ngere Zeit Nat rlich k nnen Sle die Wartezeit auch verringern wenn Sie bereits bei k rzeren Verz gerungen alarmiert werden m chten Seite 207 SMS Anwendungen 6 2 Statusmonitor verbessern Den Statusmonitor der SMS Server Tools haben Sie sicher bereits ausprobiert Sie haben bereits gelernt dass Sie zu diesem Zweck smsd mit der Option s starten m ssen z B smsd s Die Bildschirmausgabe ist informativ aber sehr schlicht gehalten und nicht besonders bersichtlich iiiriisssisss liiriisssisss LLTTLULTLILIC Ausserdem hatte ich in Kapitel 5 8 geschrieben dass Sie diesen Statusmonitor nicht gebrauchen k nnen wenn Sie die SMS Server Tools durch ein Start Script beim Hochfahren automatisch starten lassen Die Verbesserung des Statusmonitors besteht also in diesen Arbeitsschritten Umleitung der Ausgabe in ein Hilfsprogramm Umformatierung in eine sch nere Darstellung Die Umsetzung der ersten Aufgabe sollte Ihnen klar sein ndern Sie das Start Script der SMS Server Tools also etc init d sms so ab usr lo
213. lib sendmail v receiver mail isis de From sender mail isis de Hallo lt Strg D gt Setzen Sie in dem Befehl sinnvolle eMail Adressen ein Die eMail sollte den Empf nger erreichen Seite 78 SMS Anwendungen 4 5 1 2 Sendmail konfigurieren unter RedHat Linux Diese Anleitung bezieht sich auf RedHat 7 3 Neuere Versionen werden hoffentlich ein komfortables Konfigurationsprogramm beinhalten Diese Anleitung ist vermutlich auch unter lteren RedHat Versionen anwendbar Unter RedHat Linux brauchen Sie nur eine vorbereitete Konfigurationsdatei anpassen Editieren Sie etc mail sendmail mc Dort gibt es eine Zeile die mit dnl auskommentiert ist L schen die Buchstaben dnl und setzen Sie den Namen Ihres Mailservers ein define SMART HOST mail isis de dnl Geben Sie nun die folgenden Befehle ein um diese Konfigurations Vorlage in eine sendmail cf zu bersetzen cd etc mail m4 sendmail mc gt sendmail cf Testen Sie den Versand von eMail mit den Befehl lusr lib sendmail v receiver mail isis de From sender mail isis de Hallo lt Strg D gt Setzen Sie in dem Befehl sinnvolle eMail Adressen ein Die eMail sollte den Empf nger erreichen 4 5 1 3 Sendmail Konfgurieren unter Solaris Diese Anleitung habe ich unter Solairs 6 und Solaris 8 getestet Sollten Sie damit keinen Erfolg haben lesen Sie bitte das Buch sendmail vom O Reilly Verlag Tragen Sie in etc hosts Ihren mailserver mit dem Namen mailhost ein Z
214. lick in die Logfiles helfen Wo die stehen habe ich ebenfalls in die Merklisten geschrieben Wenn die Fehlermeldung Forbidden You don t have permission to access test html on this server im Webbrowser erscheint dann hat das Verzeichnis oder die Datei nicht ausreichend Zugriffsrechte Alle User auch fremde m ssen Lese Recht auf das Verzeichnis alle bergeordneten Verzeichnisse und die Datei haben Seite 104 SMS Anwendungen 4 8 2 Die erste dynamische Webseite Bevor Sie hier weiter machen sollten Sie sicher stellen dass Sie die erste Webseite aus dem vorherigen Kapitel problemlos aufrufen k nnen Erstellen Sie die Datei test2 php im htdocs Verzeichnis mit folgendem Inhalt lt html gt lt body gt Dies ist meine erste dynamische Webseite mit PHP Code lt p gt lt php print Heute ist der strftime d 3m Y und es ist strftime H M S Uhr 2 gt lt body gt lt html gt Machen Sie sich an dieser Stelle vorl ufig nicht allzu viele Gedanken ber die verwendeten Befehle Diese lernen Sie in den n chsten Kapiteln kennen Rufen Sie diese Datei nun in ihrem Webbrowser auf indem Sie http meinserver test2 php eingeben Dann erscheint dies Dies ist meine erste dynamische Webseite mit PHP Code Heute ist der 07 03 2003 und es ist 11 25 57 Uhr PHP Programme werden direkt in die HTML Dateien eingebettet Die erste Zeile wurde durch ganz normalen HTML Code dargestellt wie im vorherigen Kapite
215. ll Fenster Geben Sie im ersten Fenster dies ein while true do sleep 1 echo Hallo done gt gt test txt Dies ist eine Endlosschleife die jede Sekunde das Wort Hallo in die Datei test txt schreibt Die Datei bleibt w hrend des gesamten Vorganges permanent ge ffnet Beobachten Sie dass die Datei st ndig w hst indem Sie in dem zweiten Fenster mehrmals Is l test txt eingeben Versuchen Sie jetzt unter Windows diese Datei mit dem Dateimanager Explorer zu l schen oder umzubenennen Windows wird es Ihnen nicht erlauben denn die Datei ist st ndig ge ffnet Versuchen Sie jetzt unter Unix diese Datei umzubenennen mv test txt test2 txt Kontrollieren Sie die Dateigr sse wiederum mit dem Is Befehl Sie wird weiterhin immer gr sser L schen Sie die Datei nun unter Unix mit dem Befehl rm test2 txt Die Datei erscheint nun nicht mehr im Inhaltsverzeichnis aber die Endlosschleife schreibt weiterhin auf die Festplatte Irgendwann wird sie voll sein Leider gibt es keinen Befehl mit dem Sie das jetzt sehen k nnen Selbst der Befehl df k zeigt Ihnen nicht an dass die Festplatte voll wird weil er sich auf das Inhaltsverzeichnis bezieht und in diesem existiert die Datei test2 txt ja bereits nicht mehr Wenn Sie die Led Anzeige der Festplatte aufmerksam beobachten bemerken Sie vielleicht dass sie st ndig aktiv ist Eine andere L sung muss also her und die verrate ich Ihnen jetzt Jeder der sich Unix Administrator nennt
216. lle Port belegt ist Mit RTS bittet der Computer das Modem sich bereit zu machen und zeigt gleichzeitig an dass der Computer seinerseits empfangsbereit ist Die Handshake Leitungen werden vom Betriebssystem gesteuert Ausserdem richtet dass Betriebssystem einen Pufferspeicher ein in dem empfangene Zeichen zwischengelagert werden bis das laufende Programm diese ausliest Wenn die Pufferspeicher des Computers oder Modems voll sind zeigen die Ger te dies durch die CTS und RTS Leitung an Die Spezifikation der RS232 Schnittstelle schreibt vor dass die Signale 1 und O durch 12V und 12V dargestellt werden wobei aber eine Toleranz im Bereich 3 15V zugelassen wird In der Praxis liegen die Spannungen der seriellen Schnittstellen meistens zwischen 9 und 12 Volt Seite 12 SMS Anwendungen 2 3 2 Anschlussbelegungen Achtung SUN Computer haben oft eine eigent mliche Pinbelegung 25 poliger SUB D Anschluss Modem und PC Pin 1 2 TxD 3 RxD 4 RTS 5 CTS 6 DSR 7 GND 8 DCD 20 DTR 9 poliger SUB D Anschluss Modem und PC Pin 1 1DCD 2 RxD 3 TxD 4 DTR 5 GND 6 DSR 7RTS 8 CTS Pin 9 Seite 13 SMS Anwendungen RJ45 Anschluss Sun Fire V120 und V480 Diese Server haben keine DCD Leitung am seriellen Port 1RTS 2 DTR 3 TxD 4 GND 5 GND 6 RXD 7 DSR 8 CTS RJ 45 Male 25 poliger SUB D Anschluss SUN Fire V880 Bei diesem Server befinden sich beide seriellen Ports in einem Stecker Da
217. llen Einstieg vorgesehen und kurz gehalten Im Verzeichnis smstools examples befindet sich eine weitere Konfigurationsdatei mit allen erdenklichen Optionen Ich m chte Sie nun nach und nach in die vielen Einstellungen einweisen indem ich mit einer einfachen Konfigurationsdatei beginne Seite 167 SMS Anwendungen 5 2 1 Einfache Konfigurationsdatei Eine einfache Konfigurationsdatei sieht so aus etc smsd conf devices GSM1 GSM1 device dev ttyS0 incoming yes pin 1111 Wenn Sie diese Datei mit der Vorlage smsd conf full vergleichen werden Sie sehen dass ich hier viele Zeilen ausgelassen habe Das ist in Ordnung denn smsd benutzt bei allen fehlenden Angaben Standardwerte Ich werde sp ter auf die anderen Zeilen eingehen F r Anf nger ist es sicher besser zun chst mit einer vereinfachten Konfigurationsdatei zu beginnen wie oben abgebildet Sie k nnen beliebig viele Kommentare an jeder Stelle einf gen Markieren Sie jede Kommentarzeile mit einem Raute Zeichen wie oben gezeigt Mit devices legen Sie fest wieviele GSM Modems Sie benutzen wollen und wie diese hei en Verwenden Sie keine Sonderzeichen und keine Leerzeichen au er den Unterstrich Wenn Sie mehrere Modems benutzen geben Sie jedem Modem einen Namen und listen Sie diese auf mit Kommata getrennt Dann kommt ein Konfigurationsabschnitt f r jedes Modem in diesem Fall nur ein Modem Hinter device gibt man den Namen der seriellen Schnitts
218. ls bewirkt dass das Programm im Hintergrund ausgef hrt wird So k nnen Sie alle Modems in einem einzigen Fenster beobachten Anstelle des Fehlertextes 1 test failed in diesem Script k nnen Sie jeden beliebigen Befehl einsetzen der Sie ber die St rung informiert Wie w re es mit einer eMail echo Subject 1 test failed sendmail myname mydomain Wenn Sie die Selbst Tests automatisch beim Hochfahren des Rechners ausf hren wollen legen Sie sich ein Startup Script mit dem Namen etc init d self test an bin sh case 1 in start usr local bin self test sh GSM1 401721234001 amp usr local bin self test sh GSM2 401721234002 amp usr local bin self test sh GSM3 401721234003 amp stop pkill self test sh esac Vergessen Sie nicht dass das Script ausf hrbar sein muss also chmod atx etc init d self test chmod atx usr local bin self test sh Erstellen Sie nun eine Verkn pfung dazu cd Jetc etc rc3 d In s etc init d self test S83self test Wie bereits bei der Installation der SMS Server Tools erkl rt m ssen Sie die 3 in rc3 d eventuell durch eine andere Ziffer austauschen Es handelt sich um das Verzeichnis in dem sich Verkn pfungen f r alle Programme befinden die beim Hochfahren des Rechner gestartet werden sollen Programme die beim Hochfahren gestartet werden d rfen keine Bildschirmausgaben machen Entfernen Sie daher alle Bildschirmausgaben und ersetzen Sie diese durch eMails oder irgendwelch
219. ls vorhanden Sie tun also gut daran jedem Netzanbieter wenigstens zwei Modems zuzuordnen Wie Sie am gro en Gesamtbild zu Beginn dieses Kapitels sehen k nnen ist es auch m glich ein Modem f r mehrere Netzanbieter zugleich zu benutzen In der Konfigurationsdatei bestimmen Sie f r jedes Modem anhand einer Liste welche Netzanbieter Warteschlangen es bedienen soll Dabei werden die Netzanbieter gem ss Ihrer Reihenfolge priorisiert behandelt Ein Beispiel mit zwei Modems Modem 1 ist f r Telekom D1 und Vodafone D2 Im Modem steckt eine SIM Karte von Telekom D1 Modem 2 ist f r Vodafone D2 und Telekom D1 Im Modem steckt eine SIM Karte von Vodafone D2 Das Modem 2 wird vorzugsweise Nachrichten f r D2 senden Erst wenn die Warteschlange f r D2 leer ist sendet das Modem aushilfsweise Nachrichten f r D1 Seite 164 SMS Anwendungen Umgekehrt verh lt sich das Modem 1 Es sendet vorzugsweise Nachrichten f r D1 und erst wenn diese Warteschlange leer ist sendet es Nachrichten f r D2 Worin liegt der Nutzen dieser Konfiguration Auf diese Frage gibt es mehrere Antworten Falls das Modem 1 f r D1 ausf llt hilft das Modem2 aus So ist sichergestellt dass Ihr System weiterhin arbeitet auch wenn ein Modem defekt ist Umgekehrt gilt das auch f r Modem 2 Falls sie sehr viele Nachrichten f r D2 versenden aber nur sehr wenige f r D1 hilft das Modem 1 aus und sendet ebenfalls D2 Nachrichten Sie verbessern die Geschwindi
220. lten Sie k nnen SQL Befehle immer auch in eine einzige Zeile schreiben Eine andere gleichwertige Schreibweise des obigen Befehls ist diese insert into anschriften vorname name values Michaela Musterfrau Schauen Sie sich nun die Tabelle an indem Sie select from anschriften eingeben Sie sehen dass die id Spalte automatisch fortlaufend vergeben wurde und dass die leeren Felder von Michaela Musterfrau durch das Schl sselwort NULL gekennzeichnet werden mysql gt select from anschriften id name vorname strasse plz ort 1 Mustermann Markus Bachstrasse 13 11111 Irgendwo 2 Musterfrau Michaela NULL NULL NULL 2 rows in set 0 00 sec Angenommen sie m chten nun nachtr glich die fehlende Postleitzahl und den Ort eintragen dann tun Sie das mit dem Befehl update anschriften set plz 22222 ort Wasserdorf where id 2 Nun wissen Sie auch warum ein eindeutiges ID Feld so wichtig ist n mlich um sp ter eine Reihe in der Tabelle einen Datensatz exakt zu bezeichnen Mit dem Schl sselwort where geben Sie an wo genau Sie die Tabelle ndern wollen Das n chste Kapitel erkl rt den where Ausdruck etwas detailierter Das Ergebnis des letzten update Befehles wird S
221. m Hauptprogrogramm nicht sichtbar Schauen Sie sich jetzt bitte das n chste Beispiel an test10 php lt html gt lt body gt lt php function test wert print Der Wert in test ist wert lt br gt Swert Zwei print Der neue Wert in test ist wert lt br gt Sa Eins print Der globale Wert ist a lt br gt test a print Der globale Wert ist immer noch a lt br gt gt lt body gt lt html gt Dieses Beispiel erzeigt exakt die gleiche Bildschrimausgabe wie das vorherige Programm Wie sie sehen muss die Variable innerhalb der Funktion nicht genau so heissen wie im Hauptprogramm Der Grund Es wird nur der Wert der Variablen bergeben und nicht die Variable selbst kommt Ihnen das bekannt vor Merken Sie sich dass Funktionsargumente nicht genau so heissen m ssen wie im Hauptprogramm Was Ihnen jetzt noch fehlt ist eine M glichkeit innerhalb einer Funktion auf die globalen Variablen zuzugreifen Erfahrene Programmierer vermeiden die Nutzung dieser M glichkeit denn sie erschwert das Kopieren alter Funktionen in neue Programme Das folgende Beispiel test11 php demonstriert die Verwendung globaler Variablen lt html gt lt body gt lt php function test global a b print Die Werte in test sind a und b lt br gt Sa Drei Sa Eins Sb Zwei print Die globalen Werte sind a und b lt br gt test print Die globalen Werte sind jetzt a und
222. m relativen Format wird die G ltigkeit der Nachricht in einem Byte angegeben Wert 1 5 Minuten Ergibt 5 Minuten bis 12 Stunden 12 Stunden Wert 143 30 Minuten Ergibt 12 5 bis 24 Stunden Wert 166 Tage Ergibt 2 bis 30 Tage Wert 192 Wochen Ergibt 5 bis 63 Wochen In Deutschland ist die G ltigkeitsdauer auf 2 Tage begrenzt Gr ssere Werte werden vom SMSC ignoriert Seite 43 SMS Anwendungen F r die Nummernformate Flags Protokoll Art und Datencodierung gibt es weitaus mehr Werte als ich Ihnen hier vorgestellt habe Diese werden in Deutschland aber nicht unterst tzt Wenn Sie sich noch detaillierter informieren m chten sollten Sie die Spezifikationen ETSI TS 100 900 studieren Seite 44 SMS Anwendungen 4 1 7 Zeichensatz Handies haben nicht ganz den gleichen Zeichensatz wie Computer Die folgende Tabelle listet alle vom Handy darstellbaren Zeichen auf sowie die entsprechenden Zeichencodes auf Computern im ISO 8859 1 Zeichensatz Das Euro Zeichen und einige andere werden beim Handy durch zwei aufeinanderfolgende 7 Bit Zahlen dargestellt Manche L nder kennen landesspezifische Erweiterungen die hier nicht aufgelistet sind 0x00 0 COMMERCIAL AT 0 64 0x01 1 POUND SIGN 163 0x02 2 DOLLAR SIGN 36 0x03 3 YEN SIGN Y 165 0x04 4 LATIN SMALL LETTE
223. m sie wann starten wollen brigens ist das Dateiformat praktischerweise mit Unix identisch Wer nicht nur Programme starten m chte sondern auch noch steuern m chte also Benutzereingaben simulieren sollte sich die gr ssere Version nnCron ohne Lite ansehen Sie k nnen das Programm kostenlos unter http www nncron ru downloaden Falls Sie jetzt feststellen dass es auch in CygWin ein cron Programm gibt dann haben Sie Recht Zu dem Zeitpunkt als das Buch geschrieben wurde funktionierte das Programm jedoch nicht Daher habe ich Ihnen alternativ das Programm nnCron Lite empfohlen Seite 25 SMS Anwendungen 2 6 8 SMS Server Tools Die SMS Server Tools sind eine Sammlung ausgereifter Programme zum Senden und Empfangen von Kurzmitteilungen Sie senden eine Kurzmitteilung indem Sie einfach eine Textdatei mit der Zielrufnummer und dem Text erzeugen und in ein bestimmtes Verzeichnis abspeichern Das Hauptprogramm smsd berwacht dieses Verzeichnis st ndig und sendet die Nachricht mit Hilfe von GSM Modems Empfangene Kurzmitteilungen werden jeweils als eigene Textdatei in einem anderen Verzeichnis gespeichert und stehen so zur weiteren Verarbeitung zur Verf gung Mit Hilfe von Shell Scripten und Webserver schaffen Sie schnell und flexibel Verbindungen zu anderen Programmen sowie zum Internet Dieses Buch st tzt sich haupts chlich auf die SMS Server Tools Das Programmpaket wird das Kernst ck Ihrer SMS Anwendungen sein
224. mde sind alle anderen also Personen im Netzwerk die der PC nicht kennt Diese haben normalerweise keinen Zugriff auf Dateien Daher sind die Zugriffsrechte f r Fremde unter Windows uninteressant F r jede dieser drei Gruppen gibt es drei Zugriffsrechte e Lesen r e Schreiben w e Ausf hren x Lesen bedeutet dass die Datei gelesen werden darf Schreiben bedeutet dass die Datei beschrieben werden darf Ausf hren bedeutet dass das Programm gestartet werden darf macht insofern nur bei Programmen Sinn Auch Verzeichnisse haben Zugriffsrechte Die Bedeutung der Rechte ist hier aber etwas anders wenngleich die selben Buchstaben benutzt werden e Inhalt anzeigen r e Inhalt ver ndern w In das Verzeichnis rein gehen x Das w Recht erlaubt Ihnen den Inhalt des Inhaltverzeichnisses zu ver ndern Damit ist das Erstellen neuer Dateien sowie das L schen und Umbenennen vorhandener Dateien gemeint denn dadurch ver ndern Sie das Inhaltsverzeichnis selbst und nicht das Inhaltsverzeichnis Das x Recht erlaubt es Ihnen mit dem cd Befehl in das Verzeichnis hinein zu gehen Mit dem Befehl Is I etc sehen Sie das Inhaltsverzeichnis von etc in ausf hrlicher Form rw r r 1 SF unknown 12546 Oct 1 05 53 termcap Das erste Zeichen ist bei Verzeichnissen ein d und bei normalen Dateien ein Strich Danach kommen drei Bl cke von rwx Rechten Links f r den Besitzer in der Mitte f r die Gruppe und rechts f r Fremde Die obige Date
225. me var spool sms outgoing basename filename unlink filename gt lt html gt lt body gt Ihre Nachricht wird in wenigen Sekunden gesendet lt body gt lt html gt Dann schreibt das Script die Telefonnummer eine Leerzeile und den Nachrichtentext in die tempor re Datei Dann kopiert es die tempor re Datei in das outgoing Verzeichnis des SMS Servers und l scht die tempor re Datei copy filename ftp servername directory basename filename ENDE Zuerst erzeugt das Script eine tempor re Datei Die Funktion tempnam ist Betriebssystem spezifisch und erzeugt eine Datei nicht nur einen Dateinamen mit zuf lligem Namen in dem Verzeichnis wo normalerweise tempor re Dateien hin geh ren Sie k nnten die Datei auch direkt im outgoing Verzeichnis anlegen aber dann m ssen Sie selbst sicherstellen da der Dateiname einmalig ist Ich bevorzuge daf r die Funktionen des Betriebssystems Wenn Der Webserver keinen direkten Zugriff auf das ougoing Verzeichnis hat kann er die Datei auch per ftp hochladen Bitte schauen Sie in das Handbuch von PHP um herauszufinden ob Ihre Version diese Funktion unterst tzt und wie man sie aktiviert Seite 227
226. mitteilung zu senden geht mit Hilfe des Scriptes sendsms Sie wenden es so an sendsms 491721234567 Hallo wie geht es Dir oder sendsms 491721234567 Hallo wie geht es Dir Das Script kann auch mit Eingabeumleitung umgehen Zum Beispiel so echo Das Datum ist date sendsms 491721234567 Der echo Befehl erzeugt einen Text und f gt die Ausgabe vom date Befehl in den Text ein Die Ausgabe dieses echo Befehls wird dann in sendsms umgeleitet Wenn Sie einen Blick in das Script sendsms werfen werden Sie sehen dass es gar nicht viel tut Es legt n mlich nur eine Textdatei mit der Telefonnummer und dem Text in der ausgehenden Warteschlange an FILE mktemp var spool sms outgoing send_XXXXXX echo To SDEST gt gt SFILE echo gt gt FILE echo STEXT gt gt FILE In der ersten Zeile wird eine tempor re Datei erstellt und ihr Name in die Variable FILE gespeichert Mktemp ist ein Standard Unix Befehl der die XXXXXX durch eine zuf llige Buchstaben Ziffernkombination ersetzt aber dabei auf Eindeutigkeit achtet So bekommt jede gesendete Nachricht garantiert einen eigenen eindeutigen Dateinamen Die nachfolgenden echo Befehle schreiben die Telefonnummer eine Leerzeile und den Text in die Datei Genau das k nnen Sie auch selbst tun und zwar mit jedem beliebigen selbstgeschriebenen Script oder auch mit einem ganz normalen Texteditor Eine korrekt geschrieben Datei sieht so aus To 491721234567 Hallo Vergessen
227. n Das Programm gibt es auf der Homepage des Autors unter http www nobbi com Unter Linux k nnen Sie es mit Hilfe des Windows Emulators wine starten F r Solaris gibt es leider keine Version Tip Wenn Sie das Programm mit der Option d starten erzeugt es ein Logfile in dem die Modembefehle protokolliert werden Seite 23 SMS Anwendungen 2 6 2 CygWin CygWin ist ein Set von leistungsstarken Werkzeugen die Programmierern die Entwicklung und Migration von Unix Programmen nach Windows erleichtern CygWin ist kein Emulator Die Programme die man mit CygWin entwickelt sind echte Windows Programme CygWin besteht haupts chlich aus dem GNU C Compiler der cygwin1 dll Library und einem Satz von Programmen die zum Unix Standard geh ren Das Paket wird von RedHat entwickelt Es wird kostenlos unter http www cygwin com angeboten Ich verwende CygWin als Basis aller selbst geschriebener Windows Programme So kann ich die von Unix gewohnten Befehle gleichermassen unter Windows benutzen Programme laufen einfach unter beiden Betriebssystemen Nach der Installation von CygWin werden Sie neben der MS Dos Eingabeaufforderung auch eine CygWin Bash Shell finden in der sie alle Unix Befehle eingeben k nnen Die Installation von CygWin erfordert ca 150 MB freien Festplatten Speicherplatz Sie ist kinderleicht Downloaden Sie zuerst den CygWin Installer und starten Sie ihn Dieser bietet Ihnen dann eine Liste von optionalen Komponenten
228. n Geben Sie danach den Befehl Idconfig ein Manche Linux Versionen haben keinen Idconfig Befehl weil sie ihn nicht brauchen Installieren Sie die SMS Server Tools cd usr local src tar xvzf smstools tar gz cd usr local src smstools ffnen Sie die Datei usr ocal src smstools src Makefile mit einem Editor Aktivieren sie die Statistik Funktion durch Einf gen einer Raute vor die Zeile mit der NOSTATS Option make make install cd etc rc3 d oder cd etc init d rc3 d bitte die 3 ggf ndern wie im vorherigen Kapitel erw hnt In s etc init d sms s82sms Wenn Sie sp ter die SMS Server Tools beim Booten automatisch laden wollen benennen Sie die Datei s82sms einfach in S82sms um Seite 65 SMS Anwendungen 4 2 3 3 MySQL Konfigurieren MySQL erlaubt standardm ssig allen Usern Vollzugriff auf alle Datenbanken Dies sollte man sofort ndern Ich schlage vor f r root localhost ein Passwort zu vergeben und alle anonymen Zug nge zu l schen Sp ter kann man bei Bedarf neue User hinzufuegen mysqladmin u root password Mein_Passwort mysql u root p mysql gt use mysql mysql gt delete from user where user or password mysql gt quit mysqladmin u root p reload Der Username root hat nichts mit dem Linux User root zu tun MySQL hat sein eigene unabh ngige Passwortverwaltung Bei MySQL ist root der standardm ssige Name f r den Datenbank Administrator Nun kann man die Datenbank nur noch vom lokal
229. n um fortlaufend den Status sehen zu k nnen Sie k nnen dies durch einen simplen Einzeiler automatisieren while true do cat var log smsd status sleep 1 done Diese while Schleife l uft solange bis Sie Strg C dr cken Sie zeigt immer wieder den Status an und wartet dann eine Sekunde Seite 208 SMS Anwendungen 6 2 1 Statusmonitor als Webseite Wenn Sie eine bunte Statusanzeige bevorzugen dann schreiben Sie sich das statusmontior sh Script aus dem vorherigen Kapitel so um dass es eine HTML Datei erzeugt anstelle einer Textdatei Ausserdem sollte diese HTML Datei ein kleines Java Script enhalten dass f r eine regelm ssige Aktualisiserung sorgt Die HTML Version des Statusmonitors k nnte so realisiert werden statusmonitor2 sh bin sh show case r s i b esac NED echo echo echo echo in lt td bgcolor green gt Modem 1 lt br gt receiving lt td gt lt td bgcolor red gt Modem 1 lt br gt sending lt td gt lt td bgcolor white gt Modem 1 lt br gt idle lt td gt lt td bgcolor lightgray gt Modem 1 lt br gt blocked lt td gt while read status do echo lt html gt lt body onLoad window setTimeout location reload 3000 gt lt table border 1 gt lt tr gt gt var log smsd status html for num in 123456 789 10 11 12 13 14 15 16 do show num echo status cut c num done gt gt var log smsd status html echo lt tr gt lt
230. n wenn die Batterieladung knapp wird Diese Funktion ist sehr empfehlenswert denn sie sch tzt Ihre Festplatten vor Datenverlust durch Stromausfall Damit sind wir auch gleich beim Thema Datensicherheit dass ich in den n chsten Kapiteln er rtere Seite 30 SMS Anwendungen 3 4 Datensicherheit Datensicherheit ist wichtig damit Ihr System zuverl ssig funktioniert und Ihre Arbeit dauerhaft Fr chte tragen kann Beim Aufbau einer SMS Anwendung investieren Sie Zeit in die Installation von Software sowie deren Konfiguration Diese Arbeiten wollen Sie nicht freiwillig wiederholen Ausserdem speichert Ihre Anwendung m glicherweise Daten die Sie sp ter zur Erstellung von Rechnungen ben tigen Diese Daten d rfen auf keinen Fall verloren gehen Sie sch tzen Ihre Daten indem Sie qualitativ einwandfreie Hardware einsetzen Doch dieser Schutz reicht nicht aus Auch die besten Systeme k nnen abst rzen und dabei Daten verlieren Ausserdem haben Festplatten nur eine begrenzte nicht genau festlegbare Lebensdauer Selbst Bedienungsfehler k nnen zu Datenverlust f hren Erstellen Sie daher regelm ig Backups In der Regel werden Sie dazu in Ihre Server jeweils ein Bandlaufwerk einbauen Ich empfehle die Verwendung von Amm DAT Laufwerken mit DDS3 Format Diese Laufwerke speichern 12 24GB pro Band und haben ein brauchbares Preis Leistungsverh ltnis Wenn Sie viele Server betreiben bietet sich die Verwendung eines zentralen Backup Se
231. n Textdateien vor etwa so Ivar spool sms witze 12345 txt Ivar spool sms witze 23456 txt Ivar spool sms witze 98765 txt Empfangene SMS werden von dem SMS Server Tools als Dateien abgelegt die so aussehen From 491721234567 Hallo ich m chte den Witz Nummer 12345 bekommen Wenn Die SMS Server Tools eine SMS Empfangen speichern Sie die Nachricht ab und rufen dann ein Eventhandler Script auf 1 ist dann immer das Wort RECEIVED und 2 ist der Dateiname unter dem die SMS gespeichert wurde Ihr Eventhandler Script sieht so aus bin sh if 1 RECEIVED then exit fi from formail zx From lt 2 text formail I lt 2 sed e ld if echo text grep i witz then smsfile mktemp var spool sms outgoing send_XXXXXX echo To from gt gt smsfile echo gt gt smsfile number echo text awk if match 0 0 9 0 9 0 9 0 9 0 9 print substr 0 RSTART RLENGTH if var spool sms witze number txt then cat var spool sms witze number txt gt gt smsfile else echo Sorry falsche Artikelnummer gt gt smsfile fi fi Falls Sie Solaris benutzen ersetzen Sie awk bitte wieder durch nawk Seite 160 SMS Anwendungen Das Script extrahiert mit Hilfe von formail zuerst die Telefonnummer des Absenders und den Nachrichtentext Dann pr ft es mit grep ob das Schl sselwort Witz enthalten ist Der Parameter i sorgt daf r dass Gro Kleinschreib
232. n dem Befehl sinnvolle eMail Adressen ein Die eMail sollte den Empf nger erreichen Seite 80 SMS Anwendungen 4 5 3 eMail senden Sie haben nun entweder sendmail oder ssmtp auf Ihren Computer installiert und sind damit bereit eMails zu senden Die einfachtste Art eine eMail zu senden ist diese lusr lib sendmail empf nger irgendwo de Hallo lt Strg D gt Nur wenige Mailserver akzeptieren solche eMails weil der Header fehlt Die eMail w rde beim Empf nger v llig anonym erscheinen Die obige Mail w re mit einem Brief vergleichbar den Sie ohne Beschriftung in den Briefkaten des Empf nger werfen lassen Innen auf dem Briefpapier st nde einfach nur Hallo Viele Mailserver lassen solche anonymen eMails nicht mehr zu und verlangen wenigstens nach einem Absendernamen Eine vollst ndige eMail sendet man so lusr lib sendmail klara musterfrau irgendwo de From Michael Mustermann lt michael mustermann irgendwo de gt To Klara Musterfrau lt klara musterfrau irgendwo de gt Subject Testmail Hallo das ist ein Test lt Strg D gt Die Leerzeile zwischen dem Header und dem Text ist wichtig Beim Absender und Empf nger k nnen Sie die Namen auch weglassen und einfach nur die eMail Adressen benutzen F r die Darstellung im eMails Client z B Outlook ist Angabe von richtigen Namen aber vorteilhaft Beispiel lusr lib sendmail klara musterfrau irgendwo de From michael mustermann irgendwo de To klara muster
233. n ein Kunde Beispielsweise die Datei 1001D2 bestellen m chte muss er Ihrem SMS Server eine SMS mit dem Text 1001D2 schicken Bei falschen Bestellnummern bekommt er eine entsprechende Fehlermeldung als Antwort 7 7 Web Formular sendet Nachrichten Das Senden einer Nachricht aus einem Web Formular ist ganz einfach Prinzipiell brauchen Sie nur die Nachricht als Datei im outgoing Verzeichnis speichern Dokument Bearbeiten Ansicht Gehe zu Lesezeichen Extras Einstellungen Fenster Hilfe aa ASRA A S de LY Adresse w http localhost apache2 default test test1 html Mes la Send me a message 491721234567 submit Seite geladen Seite 226 SMS Anwendungen 7 7 1 Das Web Formular Das ist der Quelltext der Webseite test1 html lt html gt lt body gt lt form action send php method post gt Sende mir eine Nachricht lt input type text name destination size 15 maxlength 15 value 491721234567 gt lt p gt lt textarea name message cols 30 rows 4 gt lt textarea gt lt p gt lt input type submit name action value submit gt lt form gt lt body gt lt html gt 7 7 2 Das sende Script Das ist der Quelltext des Sende Scriptes send php lt php filename tempnam file fopen filename w fwrite file To POST destination n fwrite Sfile n fwrite file _POST message n fclose file copy filena
234. n ein solches Formular test5 html lt html gt lt body gt lt form action test5 php method post gt Name lt input type text name username gt lt br gt lt input type submit gt lt form gt lt body gt lt html gt Im Webbrowser erscheint dieses Formular als ein Eingabefeld mit einem Submit Button Die Eingabe wird an das PHP Programm test5 php bergeben und zwar als Variable _POST username Sie k nnten z B so darauf zugreifen test5 php lt html gt lt body gt lt php printf Sie haben s eingegeben Danke POST username 2 gt lt body gt lt html gt Sie k nnen Formulardaten auch mit der get Methode senden Der Unterschied ist dass sie dann in der Adress Leiste des Webbrowsers erscheinen etwa so http localhost test5 php username Stefan File Upload funktionieren so test6 html lt html gt lt body gt lt form method post enctype multipart form data action test6 php gt lt INPUT TYPE hidden name MAX FILE SIZE value 1000 gt lt input type file name userfile gt lt input type submit gt lt form gt lt body gt lt html gt Der Webbrowser pr ft ob die zu sendende Datei zu gro ist anhand der MAX_FILE_SIZE Angabe und verweigert ggf das Senden enth lt den urpsr nglichen Dateinamen enth lt die Dateigr sse in Bytes enth lt den tempor ren Dateinamen unter dem die Datei auf dem Webserver gespeichert wurde enth lt den
235. n einen Header beinhalten Nur bei 8 bit Bit 5 Ist 1 wenn der Absender einen Status Report gew nscht hat Bit 2 Ist 0 wenn noch weitere zusammenh ngende SMS empfangen werden Bit 1 0 Ist 00 um eine empfangene SMS anzuzeigen 10 w re ein Status Report L nge der Absender Nummer hier 12 Ziffern Die Formatangabe wird nicht mitgez hlt Format der Absender Nummer 91 International A1 National DO Alphanumerisch Absender 49172123456 Protokoll Art 00 normale SMS Bit 3 2 Datencodierung 00 7bit Text 01 8bit Daten 10 Unicode Text Bit 1 0 Klasse 00 Flash SMS 01 normale SMS Sendezeit in der Reihenfolge Jahr Monat Tag Stunde Minute Sekunde Jede zweite Ziffer ist vertauscht Hier steht also 29 01 03 15 16 59 Zeitzone in viertel Stunden Negative Werte sind M glich und werden durch Addition von 80 dargestellt 04 bedeutet GMT 1 Stunde Anzahl der Zeichen bei 7 Bit oder Anzahl der Bytes bei 8 Bit Text oder Daten In diesem Fall hellohello Telefonnummern werden mit F aufgef llt wenn die Anzahl der Ziffern ungerade ist Manche SMSC z hlen das F bei der L ngenangabe mit und manche z hlen es nicht mit Die Ziffern der Telefonnummern werden vertauscht dargestellt wie man am obigen Beispiel gut sehen kann Alphanumerische Absendernamen werden wie 7 Bit Text codiert Die L ngenangabe davor gibt an wie viele Hex Ziffern der Absendername lang ist also im Gru
236. n in Ihren Server einbauen Die Klassische redundante Festplattenspeicherung ist ein RAID 5 System Darin befinden sich meistens f nf Festplatten jedenfalls mindestens 3 auf denen Ihre Daten verteilt gespeichert werden und zwar zusammen mit CRC Pr fbytes Die Pr fbytes erm glichen eine vollst ndige Datenrestauration solange nicht mehr als eine der f nf Festplatten ausfallen RAID 5 Systeme mit 5 Festplatten nutzen 1 5 des Speicherplatzes f r die Pr fbytes und 4 5 f r die Nutzdaten Heutzutage sind die Kapazit ten gew hnlicher Festplatten derart gro dass RAID 5 Systeme nur noch selten Sinn machen Bei einer SMS Anwendung ist es ganz bestimmt so Ich empfehle Ihnen daher eine einfache Festplattenspiegelung Dabei speichert Ihr Server einfach alle Daten auf zwei Festplatten gleichzeitig Sollte eine davon ausfallen kann der Server mit der verbleibenden Festplatte weiter laufen Unter Solaris k nnen Sie diese Aufgabe mit der Veritas Software l sen und bei Linux ist eine entsprechende Funktion bereits im Kernel enthalten F r Windows sind entsprechende Controller und Software erh ltlich Neben doppelten Festplatten ist es auch sinnvoll Server mit doppelten Netzteilen und L ftern einzusetzen weil diese Teile auch weit oben in der Ausfallstatistik stehen Redundante Festplatten sind gut doch sie sch tzen nicht vor Systemabst rzen oder Fehlbedienungen Wenn Sie die Zuverl ssigkeit Ihrer SMS Anwendung noch weiter erh hen m c
237. n werden protokolliert Das Logfile enth lt viele Details aber nicht die Modembefehle die bei der Fehlersuche ben tigt werden notice Informationen wenn eine Nachricht gesendet oder empfangen wurde sowie Informationen ber alle nicht normalen Ereignisse warning Warnung wenn das Programm ein Problem hat z B eine Nachricht nicht senden kann error Fehlermeldungen wenn das Programm ein tempor res Problem hat z B ein Modem mit ERROR antwortet oder eine Datei nicht gelesen werden kann critical Kritische Fehler Wenn das Programm ein permanentes Problem hat z B das Senden mehrfach fehlschl gt oder die Zugriffsrechte auf Warteschlangen nicht ausreichen Diese Stufe ist f r den Betriebssystem Kern reserviert und wird von den SMS Server Tools nicht benutzt Die Nummern gelten f r Linux und vermutlich auch f r alle anderen Betriebssysteme 100 sicher bin ich mir da allerdings nicht Wenn Sie den Syslog D mon benutzen oder das Windows Ereignisprotokoll k nnen Sie die Detailstufe sowohl hier als auch in der Konfiguration des Betriebssystems reduzieren Seite 171 SMS Anwendungen alarmhandler Programmname Gibt ein Programm an dass bei jedem Alarm gestartet werden soll Es darf auch ein Shell Script sein Geben Sie das Programm mit vollem Pfad an Alarmhandler werden sp ter detailliert erkl rt Wenn Sie keinen Alarmhandler brauchen lassen Sie diese Angabe weg alarmlevel Zahl Le
238. n zwei Doppelpunkten meistens eine 3 Diese Zahl sagt Ihnen in welchem Verzeichnis Sie eine Verkn pfung zu dem Start Stop Script anlegen m ssen also z B in etc init d rc3 d Gehen Sie in dieses Verzeichnis hinein ung geben Sie dort ein In s etc init d sms S82sms Nun werden die SMS Server Tools beim Hochfahren des Servers automatisch gestartet Und das Herunterfahren brauchen Sie sich keine Gedanken zu machen Das Betriebssystem bricht alle laufenden Programme beim Herunterfahren ab kurz bevor sich der Rechner aus schaltet bzw neu startet F r die SMS Server Tools ist das v llig akzeptabel Ein sauberes Beenden ist bei den SMS Server Tools nicht notwendig Windows NT 2000 XP Anwender k nnen die SMS Server Tools als Dienst automatisch beim Hochfahren starten lassen Installieren Sie den Dienst mit folgendem Befehl wenn sie das m chten cygrunsrv install smsd path usr local bin smsd exe type auto neverexits shutdown env CYGWiIN server env PATH usr local bin usr bin bin desc SMS Server Tools Starten Sie nun den Dienst durch einmalige Eingabe von net start smsd oder indem sie die Systemsteuerung benutzen Das Programm smsd kann Ihnen auch einen Statusmonitor anzeigen w hrend es l uft Um diesen zu aktivieren starten Sie smsd mit der Option s Im Kapitel 5 8 erfahren Sie wie Sie diese Option benutzen Seite 177 SMS Anwendungen 5 4 Kurzmitteilungen senden Die einfachste Art eine Kurz
239. name Falls sie gerade beabsichtigen diesen Code abzutippen dann vergessen sie nicht die x Rechte einzuschalten sonst d rfen Sie das Script nicht starten chmod atrx usr local bin popmail Nun werden die empfangenen Mails wiederum in Dateien gespeichert aber zus tzlich erscheint die Meldung Sie haben Post in Datei tmp mail QE4F3AB9 An Stelle des simplen echo Befehls k nnen Sie auch andere Programme aufrufen Sie werden in sp teren Kapiteln sinnvollere Anwendungsbeispiele finden Seite 83 SMS Anwendungen 4 5 6 Formail anwenden Das Programm formail ist sehr n tzlich wenn Sie aus eMail Dateien in ihre einzelnen Bestandteile zerlegen m chten oder sie ver ndern m chten Nehmen wir die eMail aus dem vorletzten Kapitel als Vorbild Return Path lt root linux local gt Date Wed 12 Feb 2003 17 36 42 0100 From root lt root linux local gt Message Id lt 200302121636 h1CGagJ16586 linux local gt To s fringstlinux local Subject Test 3 Hallo Du Schlafm tze Angenommen sie m chten nur den Absender haben dann geht das so formail zx From lt tmp mail QE4F3AB9 Um aus der Mail nur einige bestimmte Header Zeilen und den Text zu extrahieren geben Sie dies ein formail k X From X Subject lt tmp mail QE4F3AB9I Um aus der Mail nur den Text zu entnehmen und alle Header abzuschneiden verwenden Sie den Befehl formail I lt tmp mail QE4F3AB9 Der N chste Befehl ndert den Empf nger der Mai
240. nat gleich Juli Und Juli hat den Wert warm 4 8 13 PHP Scripte ausserhalb von Apache Wenn Sie sich mit PHP vertraut gemacht haben werden sie diese Programmiersprache m glicherweise auch ausserhalb des Apache Webserver anwenden wollen Das ist unter Unix durchaus m glich unter Windows leider nicht Das Beispiel test2 php war eine dynamische Webseite die das aktuelle Datum und die Uhrzeit anzeigt Ein klein wenig abge ndert k nnen sie dieses Script auch an der Shell Kommandozeile starten usr local bin php Dies ist meine erstes PHP Shell Script lt php print Heute ist der strftime d 3m Y und es ist strftime H M S Uhr n 2 gt Geben Sie den Befehl chmod a x test2 php ein damit die Datei als Script ausgef hrt werden darf Wenn Sie nun an der Kommandozeile test2 php eingeben wird das Script ausgef hrt und Sie erhalten die gleiche Ausgabe wie zuvor diesmal aber im Terminalfenster und nicht im Webbrowser Seite 122 SMS Anwendungen 4 8 14 Wie geht es weiter Sie haben nun die Grundlagen gelernt dynamische Webseiten mit MySQL PHP und dem Apache Webserver zu erstellen Sie haben erkannt dass die Verwendung von HTML Formularen n tzlich ist PHP ist eine m chtige Scriptsprache mit sehr vielen Funktionen Sie k nnen nicht alle Funktionen auf einmal lernen daf r sind es einfach zu viele Ich m chte Sie nun f r alle weiteren Fragen ber PHP auf die Original Dokumentat
241. nde genommen wie bei numerischen Absendern Texte bestehen aus Zeichen mit 7 Bit L nge Diese Bits werden aneinander gereiht und dann wieder zerlegt aber in Bytes mit jeweils 8 Bit Und zwar so TOON NONENPONNCONE COK DREIER DD LIE Eon NOA LONEEONNENK E OTTO RITCHIE CODO DO O CONDON DOT ERE RA LE Y ce 73 Ich habe die Bin rzahlen absichtlich falsch herum dargestellt weil man das Codierungsschema so besser verstehen kann Links ist immer das Bit O und rechts ist das Bit 6 bzw 7 Wenn am Ende nicht gen gend Bits brig sind um ein Byte voll zu bekommen wird einfach mit 0 Bits aufgef llt Wenn Sie sich dieses Codierschema genau ansehen werden Sie schnell verstehen warum 8 Bit Kurzmitteilungen nur 140 Bytes lang sein d rfen aber Textmitteilungen 7 Bit 160 Zeichen F r die Nummernformate Flags Protokoll Art und Datencodierung gibt es weitaus mehr Werte als ich Ihnen hier vorgestellt habe Diese werden in Deutschland aber nicht unterst tzt Wenn Sie sich noch detaillierter informieren m chten sollten Sie die Spezifikationen ETSI TS 100 900 studieren 4 1 5 PDU Datenformat Status Report Seite 40 SMS Anwendungen Wenn man Kurzmitteilungen sendet kann man dabei einen Status Report anfordern Das SMSC benachrichtigt dann den Absender ber den Status Sie erfahren so ob die SMS ausgeliefert wurde oder nicht In den Zahlenketten geh ren immer zwei Ziffern zusammen Jedes P rchen ist ein Byte in Hexadezim
242. ndere Programme die in die Tabelle schreiben wollen m ssen warten Geben Sie im MySQL Client den Befehl backup table demo tabelle to tmp ein Dadurch wird die Tabelle tabelle aus der Datenbank demo nach tmp kopiert Kopieren Sie anschliessend die Dateien tmp frm und tmp MYD auf einen anderen Datentr ger z B ein Bandlaufwerk Mit dem Befehl restore table demo tabelle from tmp spielen Sie ein Backup wieder zur ck Dieser Befehl funktioniert nur wenn die zu restaurierende Tabelle nicht existiert ggf also vorher l schen Tips zum Hot Backup Wenn Sie ein Hot Backup von einer Tabelle machen kann diese gleichzeitg nur gelesen werden Schreibzugriffe werden verz gert bis die gesamte Tabelle in die Backup Datei geschrieben wurde Bei gro en Tabellen mehrere Megabytes und schnellen Anwendungen kann dies zu Performanceproblemen f hren Stellen Sie sich vor Sie bieten 24 Stunden Dienstleistungen an die kostenpflichtig sind und monatlich abgerechnet werden Sie sammeln dann alle anfallenden Kosten pro Kunde in einer Tabelle die z B so ausieht 10001 01 03 03 SMS 0 49 10001 02 03 03 SMS 0 49 10030 02 03 03 SMS 0 49 10023 03 03 03 SMS 0 49 10001 05 03 03 SMS 0 49 10001 06 03 03 SMS 0 49 F r jede kleine Dienstleistung die Sie erbringen f gen Sie eine entsprechende Reihe in diese Tabelle ein Die Tabelle muss also st ndig bereit sein beschrieben zu werden J
243. ndernamen und das Passwort Wenn ein gleichlautender Eintrag in der Datenbank steht beendet sich das Script ohne Fehlercode Wurde aber kein Eintrag gefunden beendet sich das Script mit Fehlercode 1 Der Name und das Passwort werden aus den From und Subject Zeilen mit Formail extrahiert Die SMS Server Tools senden die Kurzmitteilung nur dann wenn der Checkhandler ohne Fehlercode endet Richten Sie sich dieses Script als Checkhandler in der Konfigurationsdatei etc smsd conf ein checkhandler usr local bin checkhandler sh Seite 219 SMS Anwendungen 7 5 Eisprung Erinnerung Dieses Beispiel ist nicht wirklich meine eigene Idee Bei der Suche nach interessanten Webseiten ist meine Frau auf diese Erfindung gestossen Da ich sie interessant finde m chte ich Ihnen zeigen wie Sie einen solchen Dienst mit den SMS Server Tools realisieren k nnen Aufgabe des Dienstes Eisprung Erinnerung ist es interessierte Frauen kurz vor dem Eisprung und kurz vor der Blutung per SMS an den Termin zu erinnern In einem Anmeldeformular tragen die Kundinnen ein wann die letzte Blutung begann und wie lange eine Periode bei ihr dauert Aus diesen Angaben berechnet Ihr Server das Datum des n chsten Eisprunges und der n chsten Blutung Daraus ergeben sie die Tage an denen die Kundinnen Erinnerungs SM erhalten werden Ein Zyklus dauert immer ungef hr 28 Tage die genaue Dauer ist von Frau zu Frau unterschiedlich Der Eisprung findet etwa 13 T
244. nen Modem Statistics Logfile Eventhandler Status Monitor Een 2 w E include lt stdio eceived gt int mainfint arg TN Moved SMS to N printf Sh e Nebenbei aber f r die meisten Anwender dennoch sehr wichtig kann sms noch einiges mehr Zum Beispiel kann es einen Modem Statusmonitor anzeigen Dieser Monitor zeigt an welche Modems gerade senden empfangen blockiert sind oder nichts zu tun haben Smsd sammelt Statistiken ber die Anzahl gesendeter und empfangener SM sowie ber die Auslastung der Modems Diese Statistik hilft Ihnen z B bei der Entscheidung ob Sie die Leistung Ihres System durch hinzuf gen weiterer Modems sinnvoll erh hen k nnen oder nicht Mit einer Tabellenkalkulation wie Microsoft Excel oder KSpread k nnen Sie aus diesen tabellarischen Statistiken eindrucksvolle Graphen erstellen Seite 165 SMS Anwendungen Wenn Sie sms stoppen oder killen verlieren Sie keine Statistikdaten Dies ist eine Besonderheit in den SMS Server Tools Die meisten Programme verlieren alle gesammelten Zahlen des aktuellen Zeitabschnittes z B Stunde wenn Sie das laufende Programm abbrechen Smsd hingegen sichert die Statistiken in eine tempor re Datei um sie beim n chsten Start korrekt aufzuzeichnen In Protokolldateien Logfiles zeichnet sms alles Aktionen auf die es ausgef hrt hat Sie k nnen die Detailstufe einstellen Vielleicht m chten Sie nur Fehlermeldungen protokollieren oder jedes kleinste Detail sehen z B
245. nerhalb der Zeichenkette m ssen Platzhalter stehen an deren Stelle dann die Variablem eingef gt werden Es gibt diese Platzhalter Eine Integer Zahl Eine Flie kommazahl Ein Zeichen Eine Zeichenkette Beispiel printf f Euro 12 5 Man kann die die L nge der Felder festlegen wo die Variablen eingef gt werden Die Werte werden dann rechtsb ndig ausgegeben printf 6f Euro 12 5 Auch linksb ndige Ausgabe ist m glich printf 6f Euro 12 5 Ein etwas komplexers Beispiel printf 20s 4 2f Euro n Inkjet paper 12 5 Hier wird der Titel Inkjet paper linksb ndig ausgegeben und auf 20 Zeichen L nge aufgef llt Der Preis wird rechtsb ndig auf 4 Stellen aufgef llt ausgegeben und mit genau 2 Nachkommastellen Am Ende kommt noch ein Zeilenumbruch Sprintf funktioniert wie printf nur wird die Ausgabe in eine Variable geschrieben anstatt auf den Bildschirm variable sprintf f Euro 12 5 Seite 156 SMS Anwendungen 4 10 15 Arrays Arrays sind Variablen die viele Werte beinhalten k nnen Jeder Wert innerhalb des Arrays hat einen Namen oder eine Nummer zuz glich dem Wert selbst Beispiele fruechte apefel 36 fruechte birnen 20 fruechte kirschen 340 print Wir haben fruechte aepfel pfel print Wir haben fruechte birnen Birnen print Wir haben fruechte kirschen Kirschen Einfacher geht es mit der for Schleife fruecht
246. nf ein Die dazu n tige Zeile lautet eventhandler usr local bin gpsevent sh Vergessen Sie nicht das Script als ausf hrbar zu markieren indem Sie chmod atx usr local bin alarmevent sh eingeben Legen Sie sich eine Datenbank f r die GPS Positionsdaten an Seite 215 SMS Anwendungen stefan server gt mysql u root p mysql gt create database smsd Query Ok mysql gt use smsd Database changed mysql gt create table gps gt id int auto_increment not null gt primary key id gt sent datetime gt text char 160 gt Query Ok Das war schon alles Sie k nnen jetzt an zentraler Stelle die Positionen aller Fahrzeuge empfangen Zum Anzeigen der Daten geben Beispielsweise den folgenden SQL Befehl im MySQL Client ein select from gps where text like Auto Es erscheint eine Liste aller gemeldeter Positionen des Fahrzeuge mit dem Namen Auto Um die Ausgabe auf einen bestimmten Zeitraum zu beschr nken geben Sie ein select from gps where text like Auto and sent gt 2003 02 22 and sent lt 2003 02 24 Dies zeigt alle Positionen vom 22 2 2003 ab 0 00 bis zum 24 2 2003 0 00 an Das Modem unterst tzt zahlreiche unterschiedliche Nachrichtenformate Wenn Sie die Standardvorgabe behalten empfangen Sie Kurzmitteilungen im GGA Format Beispiel GPGGA 161229 487 3723 2475 N 12158 3416 W 1 07 1 0 9 0 M 0000 18 Die folgenden Zahlen sind dabei am interessantesten 16 12 29 Uhr
247. ng doch sie k nnen usserst empfindlich auf hochfrequente St rimpulse aus der Steckdose reagieren n mlich mit einem Absturz Diese St rimpulse werden beispielsweise von Leuchtstofflampen erzeugt und treten daher praktisch in jedem Geb ude auf Installieren Sie einen guten Netzfilter gegen hochfrequente St rungen Sie bekommen solche Ger te in jedem Elektrohandel Normalerweise sind diese mit einem Uberspannungsschutz kombiniert den ich Ihnen ebenfalls nur empfehlen kann berspannungen entstehen vor allem beim Abschalten von Motoren und Leuchtstofflampen wenn diese nicht korrekt entst rt sind sowie durch Blitzeinschlag F r verh ltnism ssig kleines Geld sch tzen Sie Ihre teure Hardware berspannungen Bitte beachten Sie dass Filter und Uberspannungsableiter in unterschiedlichster Qualit t angeboten werden Viele Ger te haben keine nennenswerte Schutzwirkung Lassen Sie sich im Elektro Fachhandel Ihres Vertrauens vor dem Kauf beraten USV ist die Abk rzung f r Ununterbrochene Stromversorgung und bezeichnet Ger te die mit Hilfe von Batterien Stromausf lle berbr cken Wenn Sie Ihrem System eine USV vorschalten sind Sie vor kurzzeitigen Stromausf llen gesch tzt Diese Ger te gibt es in den unterschiedlichsten Gr ssen Achten Sie beim Kauf nicht nur darauf dass sie die erforderliche Leistung z B 1000VA bringt sondern auch auf ausreichende Batteriekapazit t Diese k nnen Sie so berechnen falls konkrete Zeitang
248. nischen Buchstaben auch Chinesich Arabisch und viele andere Sprachen beinhaltet Er wird auch UCS2 genannt Unicode gibt es in zwei Varianten und zwar big endian und little endian Im GSM netz wird die big endian variante verwendet Unicode Nachrichten sind auch 70 Zeichen begrenzt Unicode Nachrichten sind prinzipiell genau so aufgebaut wie bin re Nachrichten Der Header ist in lateinischen Buchstaben geschrieben iso8859 1 dann kommt eine Leerzeile und dann kommt der Nachrichtentext in Unicode big endian Format To 491721234567 Alphabet UCS2 qs2389gnsakj 92 fs2ujtiegbhewqu2ir9jsdgufh3 gjeruggh87zt243htgerugsqh 3gert3245 Damit Sie empfangene Unicode Nachrichten einfacher lesen k nnen habe ich zwei Scripte geschrieben Das Script sms2html wandelt eine empfangene SMS Dateien in HTML um Das Script sms2unicode wandelt eine empfangene SMS Datei in eine reine Unicode Textdatei um sms2html received sms gt new html sms2unicode received sms gt new html F r die umgekehrte Richtung habe ich das Script unicode2sms geschrieben Es wandelt eine reine Unicode Textdatei in eine SMS Datei um unicode2sms message txt gt send sms Windows XP Usern empfehle ich das Programm Notepad Es kann diese Unicode Textdateien korrekt anzeigen und erstellen Seite 183 SMS Anwendungen 5 6 4 Empfangene Texte Empfangene Textnachrichten sehen so aus From 491721234567 From_SMSC 491722270333 Sent 00 02 2
249. noch einen Abbruch Befehl er lautet exit Exit unterbricht das gesamte PHP Programm mit sofortiger Wirkung 4 8 7 include Mit der include Anweisung laden Sie eine andere Datei zum Porgrammcode hinzu Beispiel Die Datei teil1 include hat diesen Inhalt Sa 2 Sb 3 Die Datei test4 php hat diesen Inhalt lt html gt lt body gt lt php include teill include print Die Variable a ist a und die Variable b ist b 2 gt lt body gt lt html gt Dies ist sehr n tzlich Sie k nnen so Sammlungen von Variablen und Funktionen anlegen die Sie in mehreren php Dateien gemeinsam nutzen Seite 115 SMS Anwendungen 4 8 8 Funktionen Funktionen sind kleine Programmabschnitte die sie sp ter wie PHP Befehle aufrufen k nnen Sie dienen haupts chlich dem Zweck gro e Programme in kleinere Abschnitte Funktionen zu zerlegen um sie so bersichtlicher zu gestalten Beispiel function berechne wert1 wert2 ergebnis wert1 wert2 24 return ergebnis super berechne 3 4 print Die Berechnung von 3 und 4 ergibt super lt br gt klasse berechne 9 12 print Die Berechnung von 9 und 12 ergibt klasse lt br gt print Oder so berechne 3 2 lt br gt printf Oder so i lt br gt berechne 1 2 Im obigen Beispiel wird die Funktion berechne vier mal benutzt um zwei Zahlen miteinander zu verrechnen Die Funktion liefert ihr Ergebnis mittel return Befehl an das Hauptpr
250. nstallleren ia ad dai REAA E anida adan 61 4 2 2 4 Apache PHAP UNO MySQL Testi aaa 62 42 2 00M Server Tools Installieren anian de a A 63 4 2 2 6 Merklisteif r Windows ANATA SAGS 63 4 2 3 Softwareinstallation unterLinuX u 22202 22 8 288 ii 63 4 2 3 1 Vorbereiting a araia aaa a AR aA Na aaa a a r aad a E EA a N EEEE Ea 65 4 2 3 2 SMS Server Tools Installieren cata ra eara g aea erai Ear ehe AE i eea eai a Aa AA Sosa 65 4 2 3 3 MYSQL Koni guion A a ab a Ada 66 4 2 3 4 Apache PHP und MySQL Testi a nel 67 4 23 05 Merkliste f r LINUX ds saersi O Aa VASA SEENA Eai pa Tat AeA O O 68 EI CoN Schnelleinstieg e e ea 22 ee ae are ee aa eaaa aaa 69 ASADA NA A A a 69 ASIDUO 70 4 3 3 A A NN 72 U RS EE EA NOAE E e ad 73 4 3 5 Vergleich Windows Unix Befehle ciocimiii dd id 74 AS A e ANN 75 O A NON 76 SMS Anwendungen 4 5 Arbeiten Mita iii te adas 78 4 5 1 Sendmail K nfigurieren 22 222 A A iu LAIA BE Sd 78 4 5 1 1 Sendmail konfigurieren unter SUSE Linux 2240sssnsenssnnensnnnnnnnnnnnnennnnnnnnnnnnnnnnnnnnnnnnnnnnnnennnnsnnnnnnnnnnnnnnnnnnnnnanen 78 4 5 1 2 Sendmail konfigurieren unter RedHat Linux 2404240sssnsnnnnnnnnnnnnnnnnnnnnnnnnnnnennnnnnnnnonnnnnnnnnnnnnnnnnnnnannnnn nenn 79 4 5 1 3 Sendmail Konfgurieren unter Solaris 220444000nsnnnnnnnnnnnnonnnnnnnnnnnnnnnnnnnnnnennnnnnnnnnnnnnennnnnnnnnnnnnnnnnnn nn nn 79 4 5 2 ssmtp K nfigurieren a main
251. ntennenkabel unterdr cken kann EtherLite 2 Bei Modems die ber andere Steckdosen mit Strom versorgt werden als der Server kann eine Masseschleife die Signale der seriellen Schnittstelle so weit verzerren dass die Modems ausfallen Wie gesagt kann Ihnen das beim Einsatz eines Digi Etherlite nicht passieren gt Bitte beachten Sie dass sie einen Windows PC ben tigen um ein Digi Etherlite zu konfigurieren EtherLite 160 Mit einem kleinen Windows Programm stellen Sie die IP Adresse des Ger tes ein Danach k nnen Sie das Ger t ans Netzwerk anschliessen und auch unter Linux und Solaris betreiben Auf der Webseite http www digi com finden Sie Lieferanten f r diese Ger te EtherLite 32 Seite 15 SMS Anwendungen 2 4 GSM Modems und Mobiltelefone In diesem Kapitel stelle ich einige GSM Modems vor die sich f r SMS Anwendungen bew hrt haben Sie erfahren zudem auch welche Kriterien bei der Auswahl eines Mobiltelefons wichtig sind und warum diese f r professionelle Anwendungen nicht geeignet sind 2 4 1 Siemens GSM Modems SIEMENS F r fast alle Siemens GSM Modems ben tigen sie zum Betrieb noch ein 12V Netzteil mit mindestens 500mA Belastbarkeit sowie eine GSM Antenne und eine SIM Karte Wenn das Netzteil nicht stabilisiert ist sollten Sie Mobile einen Kondensator mit 2200yF 25V parallel schalten Das Siemens TC35 Terminal ist das derzeit handels bliche GSM Modem von Siemens Um mit Siemens Modems Status R
252. num S 2 while num gt 1 do before expr num 1 mv 1 before 1 num gt dev null 2 gt 41 num before done ep 1 STT cp dev null 1 rename var log smsd log 7 rename usr local apache logs access log 2 rename usr local apache logs error log 7 Der Eintrag in der Cron Tabelle sieht unter Unix demnach so aus 10 0 usr local bin logfiles sh Windows Anwender m ssen den Eintrag in die Datei so schreiben 10 0 ce cygwin bin bash usr local bin logfiles sh Dieses Script benennt die drei am Ende genannten Protokolldateien um Es bewahrt dabei jeweils 7 bzw 2 alte Dateien auf Sie k nnen hier ganz einfach noch weitere Dateien einf gen Die alten Dateien der Vortage werden durchnummeriert Die smsd log von gestern heisst smsd log 1 Die Datei von Vorgestern heisst smsd log 2 und so weiter F r Interessierte erkl re ich nun wie dieses Script funktioniert Zu Beginn wird die Funktion rename deklariert damit man im Hauptprogramm diese mehrmals benutzen kann Seite 202 SMS Anwendungen rename rename var log smsd log 7 rename usr local apache logs access log 2 rename usr local apache logs error log 7 Die Funktion rename soll die genannte Protokolldatei l schen und von den alten Versionen so und so viele Tage aufbewahren Der Dateiname heisst innerhalb der Funktion 1 weil er das erste Argument des Funktionsaufrufes ist Die Anzahl der Tage ist entsprechend 2 D
253. nur Dos und Windows Befehle eingeben Sie k nnen wie gewohnt die Cursortasten benutzen um die zuletzt eingegebenen Befehle nochmal zu wiederholen Mit der Tabulator Taste k nnen Sie unvollst ndige Dateinamen automatisch erg nzen lassen Probieren Sie es aus ls f i eyqwin bat cyqwin ico etc lib tmp usr var more cyg_ Der erste Is Befehl zeigt das Inhaltsverzeichnis in der einfachsten Form an Beim zweiten Befehl wird der halbe Dateiname automatisch auf cygwin erg nzt sobald Sie die Tabulator Taste dr cken Das funktioniert auch mit Verzeichnisnamen Da es zwei Dateien gibt die mit cygwin beginnen berl sst die Shell Ihnen die Wahl welche der beiden Sie nun anzeigen wollen Wenn Sie eine Shell schliessen beenden sich normalerweise auch alle Programme die sie darin gestartet haben Manche Programme bleiben aber im Speicher und laufen weiter Kontrollieren Sie das im Zweifelsfall mit dem Taskmanager Seite 69 SMS Anwendungen 4 3 2 Dateinamen Unter Unix ist die gro Kleinschreibung wichtig und muss immer beachtet werden Wenn Sie in Dateinamen Jokerzeichen verwenden beachten Sie diese Unterschiede zur MS Dos Eingabeaufforderung Ein Stern steht f r beliebig viele Zeichen Ein Fragezeichen steht f r genau ein Zeichen Der Punkt hat unter Unix keine besondere Bedeutung Angenommen es gibt mehrere README Dateien gt Zust doc Cygwin l oik gettext 8 11 5 README perl 5 6 1 README guile 1
254. o dass der Live Betrieb nicht beeintr chtigt wird Seite 35 SMS Anwendungen 4 Basis KnowHow In diesem Kapitel lernen Sie wie der Versand und Empfang von SMS mit GSM Modems realisiert wird Sie lernen die n tigen Modembefehle kennen sowie das Datenformat der Kurzmitteilungen Anschliessend erfahren Sie wie die ben tigten Programme installiert werden und wie man sie konfiguriert 4 1 SMS Befehle f r GSM Modems In diesem Kapitel lernen Sie wie der Versand und Empfang von SMS mit GSM Modems funktioniert Das Kapitel umfasst die n tigen Modembefehle und das Datenformat der SMS Wenn Sie die SMS Server Tools zum Senden und Empfangen von Kurzmitteilungen verwenden brauchen Sie sich nicht allzu tief mit der Materie dieses Kapitels zu befassen da das Programm alles f r sie erledigt Aber zum Troubleshooting und zum Verst ndnis des Programmes hilft es die folgenden Seiten wenigstens fl chtig durchzulesen 4 1 1 Terminalprogramm starten Starten Sie ein beliebiges Terminalprogramm und stellen es auf folgende Parameter ein 9600 bps 8 Bits 1 Stopbit keine Parit t Hardware Handshake RTS CTS Unter Windows k nnen zie z B das Programm Hyperterminal benutzen und unter Linux das Programm Minicom Beide sind Men gef hrt Solaris Unter Solaris k nnen sie das Programm tip benutzen Dazu m ssen Sie vorher jedoch die Datei etc remote um diese Zeilen erg nzen porta dv dev cua a br 9600 portb dv dev cua b br 960
255. ogramm ab Die Berechnung von 3 und 4 ergibt 99 Die Berechnung von 9 und 12 ergibt 297 Oder so 51 Oder so 49 Ein anderes Beispiel diesmal mit einer Funktion die etwas tut aber kein Ergebnis zur ckgibt function fehlermeldung text print Es ist ein Fehler aufgetreten lt br gt print text lt br gt print Das Programm wird jetzt abgebrochen lt br gt exit Befehle Befehle Befehle fehlermeldung Die Festplatte ist voll Befehle Befehle Befehle fehlermeldung Text nicht gefunden Befehle Befehle Befehle fehlermeldung Falsche Eingabe 0 ist nicht erlaubt Hier benutzen wir eine Funktion mehrmals um eine Fehlermeldung anzuzeigen Das Hauptprogramm bleibt so bersichtlich und man muss den selben Programmcode nicht mehrmals schreiben Die Ausgabe der ersten Fehlermeldung w rde so aussehen Es ist ein Fehler aufgetreten Die Festplatte ist voll Das Programm wird jetzt abgebrochen Seite 116 SMS Anwendungen 4 8 9 Formular Variablen und Datei Uploads Webseiten k nnen Formulare enthalten Wenn der Betrachter ein Formular ausgef llt hat und auf dem Submit Button klickt werden die ausgef llten Felder an den Webserver geschickt In PHP Programmen finden Sie die Inhalte der Formularfelder in den Arrays wieder e POST GET e FILES _COOKIE Die Gestaltung des Formulars bestimmt in welchem Array Sie die Variablen wiederfinden Angenommen Sie habe
256. on a k nnen Sie auch u g oder o verwenden w w rde das Schreibrecht hinzuf gen chmod a w dateiname move datei ziel mv datei ziel Verschiebt eine Datei in ein anderes Verzeichnis ren alt neu mv alt neu Seite 74 SMS Anwendungen Benennt eine Datei um type datei cat datei Zeigt den Inhalt einer Textdatei an type datei more cat datei more more datei less datei Zeigt den Inhalt einer Textdatei seitenweise an Less kann sogar zur ck scrollen exit exit Beendet eine Shell 4 3 6 Suchpfade Als Dos Windows User sind sie sicher mit der PATH Variable vertraut Sie bestimmt wo ausf hrbare Programme gesucht werden fall sie nicht im aktuellen Arbeitsverzeichnis stehen Auch unter Unix gibt es eine solche Variable Mit dem Befehl echo PATH k nnen Sie den Suchpfad anzeigen lassen Beachten Sie dass unter Unix alle Verzeichnisse durch Doppelpunkte getrennt werden w hrend unter Dos Windows daf r Semikolons verwendet werden Um einen Pfad hinzuzuf gen geben Sie diese Befehle ein PATH PATH irgend ein verzeichnis export PATH Eine Eigenart hat Unix Es sucht ausf hrbare Programme niemals im Arbeitsverzeichnis es sei denn dieses ist ebenfalls in der PATH Variable angegeben Daher enth lt die PATH Variable meistens auch das Verzeichnis Wie unter Dos Windows ist ein Synonym f r das aktuelle Arbeitsverzeichnis Seite 75 SMS Anwendungen 4 4 Arbe
257. onalit t auch f r Bin re SMS Dateien brauchen m ssen Sie sich ein echtes C Programm schreiben lassen welches diese Aufgabe erledigt Im Rahmen dieses Buches werde ich nicht weiter darauf eingehen Seite 212 SMS Anwendungen 7 Praktische Anwendungsbeispiele In diesem Kapitel stelle ich Ihnen einige praktische Anwendungsbeispiele vor Betrachten Sie das Kapitel als Anregung f r eigene Entwicklungen 7 1 Zentrales Alarmsystem Das Zentrale Alarmsystem sammelt Alarme von mehreren Quellen an einem zentralen Punkt Alle Einbruch Meldeanlagen k nnen auf diese Weise drahtlos und ber beliebige Entfernungen mit dem Wachdienst verbunden werden Maschinen k nnen St rungen an den betreibenden Techniker senden Die Meldungen mehrere Alarmquellen werden an einem Computer gesammelt und auf dem Bildschirm angezeigt Auf der Empf ngerseite ben tigen Sie einen Computer mit den SMS Server Tools sowie einem beliebigen GSM Modem Dieser empf ngt die Alarme aller Sender und zeigt sie an Auf der Senderseite ben tigen Sie ein oder mehrere Falcom A3D Modems Diese Modems haben eine besondere Firmware die speziell f r solche Alarm Anwendungen entwickelt wurde 7 1 1 Senderseite Sie k nnen pro Modem bis zu drei Alarmeing nge belegen Diese befinden sich an der 15 poligen Sub D Buchse Sobald Sie an einen Eingang eine Spannung von 4 5V 12V ber einen 47k Ohm Widerstand legen sendet das Modem eine Alarm SM Bitte beachten Sie die An
258. onvertierung solche Nachrichten finden Mehr Detail siehe weiter unten Das Programm pr ft nur die ersten 3 Zeichen dieses Feldes so da W rter wie ISO 8859 15 oder UCS 2 genau so gut funktionieren Sie k nnen die folgenden Zeilen verwenden um Einstellungen aus der Konfigurationsdatei zu bergehen SMSC Telefonnummer der SMS Zentrale Provider oder Queue Name des Netzanbieters kann verwendet werden um den normalen Sortieralgorithmus gem provider und queues in der Konfigurationsdatei zu bergehen Beide bewirken das Gleiche Report Booleanscher Wert legt fest ob ein Statusreport erw nscht wird Autosplit Booleanscher Wert legt fest ob das Programm gr ere Nachrichten als 160 Zeichen aufteilen soll Seite 181 SMS Anwendungen 5 6 2 Bin rdateien senden Bin rdateien sind Nachrichten mit 8 Bit Daten Wie diese auf dem Display des Empf nger angezeigt werden h ngt ganz vom Handy ab Viele Handies kennen zum Beispiel besondere Dateiformate f r Klingelt ne und Betreiberlogos Die SMS Server Tools haben keine besonderen Funktionen f r Klingelt ne und Betreiberlogos Sie k nnen Bin rdateien 1 1 an jedes Handy senden v llig egal welchen Inhalt die Dateien haben Wenn Sie Klingelt ne selbst komponieren m chten oder Bilder auf dem Computer in Handy lesbare Betreiberlogos umwandeln m chten ben tigen Sie dazu andere Software Die SMS Server Tools unterst tzen Sie in keiner Weise beim Erzeugen solch
259. opieren Sie die Beispiel Konfigurationsdatei von PHP cp usr local src php 5 1 4 php php ini recommended usr local lib php ini ffnen Sie die php ini Datei in einem Editor Schauen Sie sich die Kommentare an Ich empfehle die folgenden nderungen display errors on doc_root usr local apache htdocs Wenn Sie sicher sind da IhrePHP scripte richtig funktionieren sollten Sie die Fehlermeldungen display_errors wieder deaktivieren ffnen Sie die Datei usr local apache 2conf httpd conf und f gen Sie diese Zeilen dort ein wo die anderen LoadModule Befehle stehen LoadModule php5 module modules libphp5 so AddType application x httpd php php Achten Sie darauf da die Zeilen nicht doppelt vorhanden sind Geben Sie folgende Befehle ein cd letc init d In s usr local apache bin apachectl apache cd etc rc3 d In s etc init d apache S81apache Starten Sie den Apache Webserver manuell Beim n chsten Booten wird er automatisch gestartet letclinit d apache start Seite 54 SMS Anwendungen 4 2 1 6 Apache PHP und MySQL Testen Testen Sie Ihren Webserver nun bitte Starten Sie einen WebBrowser auf dem Webserver und geben Sie in die URL Zeile ein http localhost Starten Sie einen WebBrowser auf einem anderen Computer und geben Sie in die URL Zeile ein http lihr_webserver_name Sie sollten in beiden F llen eine Testseite von Apache zu sehen bekommen Nun sollten Sie die PHP Funktion und die Anbindung an die My
260. or Programm stoppen net stop Apache in DOS Eingabeaufforderung oder mit dem Monitor Programm Konfigurationsdatei c programme Apache Software Foundation Apache2 2 confihttpd conf Webseiten c programme Apache Software Foundation Apache2 2 htdocs MySQL Datenbank starten net start mysql in DOS Eingabeaufforderung stoppen net stop mysal in DOS Eingabeaufforderung Client C Programme MySQL MySQL Server 4 1 bin mysaglc u root p in DOS Eingabeaufforderung Crontab ndern c programmelcron cron tab Logdateien c programme cron log 4 2 3 Softwareinstallation unter Linux Alle Linux Distributionen enthalten s mtliche Software die ich in diesem Buch nutze Sogar die SMS Server Tools sind bereits in vielen Linux Distributionen z B Debian enthalten Seite 63 SMS Anwendungen Wenn Sie jedoch die aktuellsten SMS Server Tools benutzen m chten ben tigen Sie zus tzlich zur Standardinstallation die folgenden Pakete e gcc e make e libmm Je nach Anwendung ben tigen Sie au erdem die folgenden Pakete e procmail e sendmail oder einen anderen Mailserver e fetchmail e apache e php mysql ncftp Normalerweise sollte das Installationsprogramm von Linux die Programme automatisch konfigurieren Doch falls dies nicht wie erwartet klappt helfen eventuell die Hinweise in den folgenden Kapiteln weiter Seite 64 SMS Anwendungen 4 2 3 1 Vorbereitung Loggen Sie sich als root User ein um Soft
261. orhanden Wenn die Datei noch nicht existiert wird eine neue angelegt Auch die Eingabe ist umlenkbar Daf r benutzen Sie einen Pfeil im umgekehrter Richtung Der Befehl read liest eine Zeile von der Tastatur und speichert Ihre Eingabe in eine Variable read eingabe echo eingabe Sie k nnten die Eingabe zum Beispiel in eine Datei umleiten read eingabe lt test txt echo eingabe Nun liest der read Befehl nicht mehr von der Tastatur sondern er liest die erste Zeile aus der Textdatei aus 4 9 6 Ein Ausgabe Umleitung in Programme Sie k nnen Eingaben und Ausgaben nicht nur in Dateien umleiten sondern auch in Programme Das geht so env more Der Befehl env zeigt die alle Umgebungsvariablen der Shell an Durch die Umleitung in den more Befehl betrachten Sie die Variable seitenweise Denn more liest von dem Eingabe und schreibt den Text seitenweise auf den Bildschirm 4 9 7 Ein Ausgabeumleitung in Variablen Ausgaben kann man auch in Variablen umleiten Ein Beispiel Name hostname echo Name Der Befehl hostname zeigt den Namen des Computers an Durch obigen Befehl leiten Sie dessen Textausgabe in eine Variable um Beachten Sie dass die hier verwendeten Zeichen keine Anf hrungsstriche sind Die Zeichen und sind unterschiedliche Zeichen mit v llig unterschiedlicher Bedeutung Das Zeichen wird Backtick oder Backquote genannt Sie k nnen die Ausgabe von Befehlen auch in Texte einfliessen lassen allerdings nur
262. pell genau so aus wie empfangene Textnachrichten Anstelle des Textes werden eben die Bin rdaten in die Datei gespeichert und der Header enth lt zus tzlich die beiden Angaben Alphabet binary und UDH true oder UDH false From 491721234567 From SMSC 491722270333 Sent 00 02 21 22 26 23 Received 00 02 21 22 26 29 Subject GSM1 UDH true Alphabet binary gs2389gnsakj92fs2ujtiegbhewqu2ir9jsdgufh3 gjeruggh87zt243htgerugsqh 3gert3245 Wie bei gesendeten Bin rdateien beginnen die Bin rdaten unmittelbar hinter der Leerzeile und enden am Dateiende Seite 185 SMS Anwendungen 5 6 6 Empfangene Statusberichte Wenn Sie beim Senden einer SM einen Statusreport beim SMSC beantragen bekommen Sie f r jede gesendete Nachricht mindestens einen solchen Bericht In der Konfigurationsdatei smsd conf steuern Sie dies mit der Variable report true Statusreports sind Nachrichten mit bin rem Inhalt Die SMS Server Tools bersetzen diese in lesbaren Text um Ihnen die Auswertung zu erleichtern From 491721234567 From SMSC 491722270333 Sent 00 02 21 22 26 23 Received 00 02 21 22 26 29 Subject GSM1 SMS STATUS REPORT Message id 117 Discharge timestamp 00 02 21 22 27 01 Status 0 0k short message received by the SME Der Vorspann hat den bekannten Aufbau Er ist mit empfangenen Textnachrichten identisch Im Textabschnitt informiert Sie die erste Zeile dar ber dass es sich um einen Statusbericht handelt Die M
263. qlfehler print Es ist ein Fehler in der Datenbank aufgetreten lt br gt print mysql_error exit Shandynummer POST handynummer Spasswort POST passwort blutung 5_POST blutung zyklus POST zyklus Saktion _POST aktion b Shandynummer passwort blutung zyklus eingabefehler Sie m ssen alle Felder ausf llen fa f handynummer 491721234567 Spasswort geheim eingabefehler Sie m ssen Ihre eigene Handynummer und Passwort eingeben pis zyklus lt 20 zyklus gt 36 eingabefehler Die Dauer des Zyklus kann nicht stimmen UY datum explode blutung f checkdate datum 1 S datum 0 S datum 2 false eingabefehler Das Datum ist ung ltig H jetzt time Szeitstempel mktime 0 0 0 Sdatum 1 Sdatum 0 datum 2 if zeitstempel gt jetzt eingabefehler Das Datum muss in der Vergangenheit liegen mysql_connect localhost root passwort if result mysql_db query smsd select passwort from eisprung where handynummer handynummer limit 1 Sreihe mysql_fetch_row result altes passwort reihe 0 else sqlfehler if altes_passwort if altes_passwort passwort eingabefehler Sie haben ein falsches Passwort eingegeben else if mysql db query smsd delete from eisprung where handynummer handynumme
264. r print Ihre bestehendes Abbonement wurde gel scht lt br gt else sqlfehler if aktion bestellen Sanzahl 0 while anzahl lt 24 Szeitstempel zeitstempel 13 60 60 24 if zeitstempel gt jetzt Sneudatum strftime Y m d Szeitstempel if mysql db query smsd insert into eisprung handynummer passwort datum typ values Shandynummer Spasswort Sneudatum E false sqlfehler Sanzahl Szeitstempel zeitstempel t Szyklus 13 60 60 24 if zeitstempel gt jetzt Seite 222 SMS Anwendungen Sneudatum strftime Y m d Szeitstempel if mysql db query smsd insert into eisprung handynummer passwort datum typ values Shandynummer Spasswort Sneudatum B false sqlfehler Sanzahl print Ihre neue Bestellung wurde angenommen 2 gt lt body gt lt html gt Das Script beginnt mit einigen Plausibilit tskontrollen der eingegebenen Daten Dann l scht es die alten Bestellungen und tr gt ggf neue Bestellungen in die SQL Tabelle ein Die Argumente zum mysql_connect Befehl m ssen Sie gem ss Ihrem Datenbankserver anpassen 7 5 3 Die Tabelle mit Terminen Das Script erzeugt einen Zeitplan in Form einer SQL Tabelle in der alle Tage stehen an denen die Kundin eine SM bekommen soll Die Tabelle sieht so aus eisprung FE AAA passwort 491721111111 blabla 491721111111
265. r sse dieses Speicherplatzes Die Anzahl der SIM Speicherpl tze h ngen von der SIM Karte selbst ab F r Sie sind nur die ersten beiden Zahlen 3 20 interessant AT CMGL x listet alle gespeicherten SMS auf Anstelle von x setzen Sie bitte einen der folgenden Werte ein O ungelesene Nachrichten Das Auflisten z hlt nicht als lesen 1 empfangene Nachrichten 2 nicht gesendete gespeicherte Nachrichten 3 gesendete gespeicherte Nachrichten 4 alle Nachrichten AT CMGR x liest eine empfangene Nachricht aus Geben Sie anstelle von x die Nummer des Speicherplatzes an den Sie auslesen m chten Wenn der Speicher leer ist antworten manche Modems mit einer leeren Antwort und manche Modems antworten mit ERROR Sie k nnen keine gesendeten Nachrichten auslesen daf r gibt es keinen Befehl Die Nachricht wird in folgenden Format angezeigt CMGR status name laenge daten OK Status ist ein einstelliger Wert wie beim AT CMGL Befehl Name ist der Absendername sofern er im Telefonbuch steht Die L ngenangabe brauchen Sie nicht Das Format der Daten wird im n chsten Kapitel erkl rt Soweit mir bekannt ist zeigen nur Siemens Modems den Namen an Bei anderen Modems entf llt dieser Parameter AT CMGD x l scht eine empfangene Nachricht Geben Sie anstelle von x die Nummer des Speicherplatzes an Die folgenden Befehle brauchen Sie zum Senden Seite 38 SMS Anwendungen AT CSCA XXXXXXXXXXX Mit diesem Befehl stellen Sie die
266. r speichert Ihre Daten w hrend der Client diese ver ndert oder ausliest Beliebig viele Clients k nnen gleichzeitig auf die Datenbanken zugreifen Auf den folgenden Seiten werde ich ab und zu die Begriffe endlos und beliebig gebrauchen Tats chlich gibt es Betriebssystemabh ngige Einschr nkungen die im echten Leben aber keine Rolle spielen Ein MySQL Server speichert beliebig viele Datenbanken Jede Datenbank beinhaltet beliebig viele Tabellen Jede Tabelle hat beliebig viele Reihen und Spalten In den Tabellenfeldern werden die Daten gespeichert Eine Tabellenreihe wird als Datensatz bezeichnet Eine Adresse w re z B ein Datensatz Die einzelnen Bestandteile der Adresse werden in den Spalten gespeichert und werden Datenfelder genannt Jede Tabellenspalte hat ein bestimmtes Format z B Text Datum oder Zahl Das Format der Spalten bestimmen Sie wenn Sie eine Datenbank anlegen Sie bestimmen beim Anlegen einer Datenbank wieviele Spalten diese haben wird Die Anzahl der Reihen ist offen und beginnt zun chst mit Null Man kann nachtr glich Spalten hinzuf gen oder l schen wenn man dies f r n tig h lt Seite 89 SMS Anwendungen Wenn Sie eine Datenbank anlegen geben Sie der Datenbank einen Namen sonst nichts weiter Mit Hilfe des Datenbank Namens k nnen Sie mehrere Tabellen gruppieren und so f r Ordnung sorgen In dieser Datenbank k nnen Sie nun Tabellen anlegen Dabei legen Sie fest welche Datentypen Sie in den e
267. rage lt br gt lt table border 1 gt lt tr gt lt th gt a lt th gt lt th gt b lt th gt lt th gt c lt th gt lt tr gt lt tr gt lt td gt 1 lt td gt lt td gt 2 lt td gt lt td gt 3 lt td gt lt tr gt lt tr gt lt td gt 4 lt td gt lt td gt 5 lt td gt lt td gt 6 lt td gt lt tr gt lt table gt lt body gt lt html gt Seite 119 SMS Anwendungen Diese Tabelle hat drei Spalten mit den Namen a b und c sowie zwei Reihen mit den Zahlen 1 bis 6 wiel dies die Werte aus meiner Tabelle waren Wenn Sie eine andere Tabelle verwenden werden Sie auch andere Spaltennamen und Werte sehen Machen Sie sich mit diesem Beispiel gut vertraut Spielen Sie ein wenig herum indem Sie das Ausgabeformat ndern oder weitere Informationen anzeigen Sie k nnten z B die Anzahl der Reihen und Spalten im Webbroser anzeigen Versuchen Sie das Ergebnis anders Formatiert anzuzeigen also nicht als HTML Tabelle Erstellen Sie sich ein HTML Formular in dass Sie jeden beliebigen SQL Befehl eingeben k nnen um anschliessen das Ergebnis zu sehen Sie m ssen dann anstelle des festen SQL Befehls die Variable _POSTI Feldname verwenden Als weitere bung k nnten Sie sich einen Satz HTML Formulare und PHP Scripte bauen mit denen Sie eine Adress Datenbank eingeben und anzeigen k nnen F r die Erstellung dynamischer Webseiten ist es sehr wichtig SQL Abfragen und Formulare zu beherrschen 4
268. ratur innerhalb des Schrankes sollte 40 C nicht berschreiten Um dies sicherzustellen sind die meisten 19 Zoll Schr nke mit entsprechenden Ventilatoren ausgestattet Wenn Ihr Schrank keine gelochten T ren besitzt sondern nur L ftungsschlitze dann halten Sie die T ren geschlossen damit die Bel ftung korrekt funktioniert Manche Schr nke heizen sich bei ge ffneten T ren mehr auf als bei geschlossenen Stellen Sie Antennen niemals im Innern des Schrankes auf Sie w rden damit die Modems zu erh hter Sendeleistung zwingen und zugleich die Empfangsqualit t verschlechtern Die hohe Sendeleistung wiederum k nnte die Hardware im Schrank st ren Stellen Sie den Schrank so auf dass sie die vordere und hintere T re ffnen k nnen Ansonsten werden Sie bei Montagearbeiten Schwierigkeiten bekommen Wenn Sie einen Monitor und eine Tastatur in den Schrank einbauen wollen dann verwenden Sie einen TFT Monitor z B 15 Zoll und eine Spezialtastatur f r 19 Zoll Schr nke Diese sind etwas schmaler als normale Tastaturen und haben wahlweise sogar einen eingebauten Trackball Montieren Sie die Tastatur in eine herausziehbare Schublade Zum stabilen Betrieb geh rt auch eine stabile Stromversorgung Darauf geht das n chste Kapitel ein Seite 29 SMS Anwendungen 3 3 Stromversorgung Eine stabile Stromversorgung ist Grundvoraussetzung f r den zuverl ssigen Betrieb Heutige Computer stellen keine hohen Anspr che an die Stromversorgu
269. rden durch lt php und gt gekennzeichnet Das PHP Programm verbindet sich mit der SQL Datenbank und fragt die Liste der SQL User mit deren Passw rter ab Die Passw rter sind verschl sselt gespeichert daher sehe Sie ein kryptisches Passwort hinter dem Wort root im Web Browser Seite 55 SMS Anwendungen 4 2 1 7 Sourcen installieren Compilieren Sie die Quelltexte um ausf hrbare Programme zu erhalten Die mm library wird von den SMS Server Tools ben tigt sie kann auf der Webseite http www ossp org pkq lib mm downgeloaded werden lusr local bin tar xvzf libmm 1 4 0 tar gz cd mm 1 4 0 configure make make install Ssmtp ist ein kleines Programm zum Senden von eMails durch externe Mailserver sie bekommen es unter http www ibiblio org pub Linux system mail mta lusr local bin tar xvzf ssmtp 2 4 8 tar gz cd ssmtp 2 4 8 make make install Die SMS Server Tools senden und empfangen SMS durch GSM Modems Sie bekommen die SMS Server Tools hier Version 2 x http www meinemullemaus de smstools Version 3 x http smstools3 kekekasvi com lusr local bin tar xvzf smstools 2 2 4 tar gz cd smstools ffnen Sie die Datei mstools src Makefile mit einem Editor Aktivieren sie die Statistik Funktion durch Einf gen einer Raute vor die Zeile mit der NOSTATS Option Entfernen Sie das Raute Zeichen vor der Option f r Solaris make make install cd etc rc3 d In s etc init d sms s82sms Wenn Sie
270. rden immer alle Ziffern ausgegeben auch wenn es zuviele sind Aber dahinter wird die Zahl mathematisch gerundet so dass sie genau so lang ist wie Sie beim Platzhalter festgelegt haben In diesem Beispiel habe ich die Zeichenfolge lt br gt benutzt um einem sichtbaren Zeilenumbruch im Webbrowser zu erzeugen Der Befehl sprintf funktioniert wie printf nur schreibt er seine Ausgabe in eine Variable anstatt auf den Bildschirm zahl 123 ergebnis sprintf Die Zahl ist d zahl printf ergebnis Die Zahll ist 123 4 8 4 Variablen und Datentypen Variablen haben Sie bereits im Vorigen Kapitel gesehen Variablen speichern Boolean Werte e Integer Zahlen e Fliesskomma Zahlen e Zeichenketten Arrays e NULL Variablen k nnen auch Objekte und Referenzen speichern auf die ich in diesem Buch aber nicht eingehe Im folgenden erkl re ich die obigen Variablentypen Boolean Werte Boolean Werte k nnen nur TRUE oder FALSE sein Sie d rfen diese Schl sselworte auch klein schreiben Swertl Swert2 true false Integer Zahlen Integer Zahlen k nnen Sie dezimal oktal und hexadezimal schreiben Oktakzahlen beginnen mit einer 0 Hexadezimalzahlen beginnen mit Ox Die folgenden Beispiele haben alle den gleichen Wert Szahll 123 Szahl2 0173 Szahl3 0x7B Fliesskomma Zahlen Fliesskommazahlen schreiben Sie mit Dezimalpunkt oder in Exponentialschreibweise Szahll 1234 56 Szahl2 12 3456e2 Szahl3 0 345
271. rvers an Sie m ssen dann nicht so viele B nder manuell auswechseln Da auch die DAT B nder nicht 100 verl sslich sind verwenden Sie immer wenigstens drei B nder im Wechsel Sollten Sie ein Backup zur cklesen m ssen k nnen Sie so notfalls auf ein lteres Band zur ck greifen wenn das aktuelle Band defekt ist Benutzen Sie die B nder nicht zu oft Ich f hre auf jeder Kassette eine Strichliste Wenn ein Band 20 mal benutzt wurde ersetze ich es gegen ein neues Lagern Sie Datensicherungen in einem feuerfesten Tresor oder an einem anderen Ort Denken Sie daran dass unerwartete Dinge passieren k nnen wie z B ein Brand eine Explosion oder Diebstahl Ein Band das zusammen mit Ihrem Server vernichtet wird n tzt Ihnen nichts Aus Kostengr nden kann auch eine Datensicherung auf CD R oder CD RW interessant sein Entsprechende Software k nnen Sie f r Windows kaufen in einer Linux Distribution ist sie bereits enthalten Auch bei CD s ist es angebracht mehrere ltere Scheiben aufzubewahren denn die aktuellste CD k nnte besch digt werden Seite 31 SMS Anwendungen 3 5 Redundanz Ein Redundantes System ist durch doppelte Hardware weit gehend gegen Defekte gesch tzt Der gr sste Schwachpunkt in jedem Server sind seine Festplatten Sie fallen am h ufigsten aus und deren Austausch macht zugleich am meisten Arbeit weil alle Daten wiederhergestellt werden m ssen Dagegen k nnen Sie ganz einfach mehrere Festplatte
272. s ber einen anderen bereits funktionierenden Mailserver versendet werden Wenn Sie dar ber hinaus mehr ber sendmail lernen m chten lesen Sie bitte das Buch sendmail O Reilly Verlag ISBN 1 56592 222 0 Das Buch enth lt 1050 Seiten Lesestoff Das volle Verst ndnis von sendmail ist nur der absoluten Elite unter den Unix Administratoren vorbehalten Bitte beachten Sie dass die Konfigurationsdateien von Sendmail bei jeder Version etwas unterschiedlich sind Die Anleitungen in diesem Kapitel k nnen Sie also eventuell nicht 1 1 bernehmen 4 5 1 1 Sendmail konfigurieren unter SUSE Linux Aktuelle SUSE Linux Versionen installieren standardm ssig nicht sendmail sondern postfix eine Alternative zu sendmail Da ich in diesem Buch nicht noch ein weiteres Programm beschreiben m chte deinstallieren Sie bitte postfix und installieren Sie stattdessesn sendmail Aktuelle SUSE Linux Versionen erm glichen es Ihnen sendmail mit Yast2 zu konfigurieren Unter lteren SuSE Linux Versionen z B SuSE 7 3 m ssen Sie manuell vorgehen Editieren Sie bitte zuerst die Datei etc rc config d sendmail rc config gem ss Ihrer Netzwerkumgebung Die Konfigurationsdatei enth lt eine Menge ausf hrlicher Kommentare Geben Sie in die Zeile SENDMAIL_SMARTHOST den Hostnamen Ihres Mailservers ein Alle eMails werden dann durch diesen Mailserver verschickt F hren Sie danach sbin SuSEconfig aus Testen Sie den Versand von eMail mit den Befehl lusr
273. s Argument angeben anstatt es in eine separate Script Datei zu speichern awk Befehle Textdatei 4 10 2 Erste awk Beispiele Bevor ich Ihnen die awk Scriptsprache erkl re m chte ich Ihnen ein paar einfache Beispiele zeigen Da erste Beispiel liest eine Textdatei ein und gibt von jeder Zeile das zweite Wort aus awk print 2 Textdatei Wenn Sie mit unterschiedlichen Textdateien herumspielen werden Sie bemerken dass awk mehrfache Leerzeichen und Tabulatoren zusammenfasst Awk entfernt auch f hrende Leerzeichen aus allen Zeilen Wenn die Textdatei so aussieht Stefan Frings Michaela Meier Gundula Geier kommt hinten dies heraus Frings Meier Geier Das zweite Beispiel gibt von einer Textdatei alle Zeilen aus die das Wort Hallo beinhalten awk Hallo print 0 Textdatei Das dritte Beispiel gibt die nur dritte Zeile der Textdatei aus alle anderen werden unterdr ckt awk NR 3 print 0 Textdatei Die Aufgaben aus diesen einfachen Beispielen h tte man auch mit anderen Befehlen l sen k nnen Besonders wenn Aufgaben komplexer werden wird awk allerdings eindeutig die bessere Wahl sein Seite 148 SMS Anwendungen 4 10 3 Grundsatzliche Syntax von awk Scripten Awk liest Textdateien zeilenweise ein und f hrt f r jede Zeile eine Liste von Befehlen aus Das ganze awk Script wird f r jede einzelne Textzeile wiederholt durchlaufen Jeder Befehl besteht aus zwei Teilen der Bedingung und der Aktion Bed
274. s Programm und jeder Befehl Befehle sind Programme liefern am Ende einen Exit Code an die Shell zur ck Das ist eine Zahl im Bereich 0 bis 255 Die O wird als erfolgreich gewertet alle anderen Werte sind Fehlercodes Die Zahlen 1 255 haben bei jedem Programm eine andere Bedeutung Bei den meisten Befehlen finden Sie eine Erkl rung der m glichen Exit Codes in deren Manual Page Seite 130 SMS Anwendungen 4 9 9 Kontrollstrukturen Kontrollstrukturen erm glichen Ihnen die Befehle eines Shell Scriptes nicht einfach nur sequentiell von oben nach unten abzuarbeiten sondern Wiederholungen oder bedingte Programmabschnitte einzubauen 4 9 9 1 if then else fi Mit der Kontrollstruktur if then else fi f hren Sie Programmabschnitte bedingt aus wenn ein Vergleich erfolgreich war oder ein Testbefehl O zur ck gibt Die Schreibweise ist if Befehl then Programmabschnitt1 fi oder so if Befehl then Programmabschnitt1 else Programmabschnitt2 fi Wenn der Befehl erfolgreich war dann wird der Programmabschnitt1 ausgef hrt Wenn er nicht erfolgreich war wird der Programmabschnitt2 ausgef hrt falls vorhanden Sehr selten sieht man diese erweiterte Variante in der mehrere Alternative Befehle getestet werden if Befehl1 then Programmabschnitt1 elif Befehl2 then Programmabschnitt2 else Programmabschnitt3 fi Wenn der Befehl1 erfolgreich war wird der Programmabschnitt1 ausgef hrt Amsonsten wird der B
275. s Vorbild aller Linux Distributionen RedHat ist weniger umfangreich als SuSE Linux Ein weiterer Unterschied ist dass SuSE in Deutschland sehr aktiv ist und Hardware Software sowie Schulungen anbietet RedHat bel sst die Programme auf der Distribution normalerweise im Originalzustand w hrend SuSE viele Programme leicht modifiziert um den Installations und Administrationsaufwand zu reduzieren Entscheiden Sie sich f r RedHat wenn Sie programmieren und ihre Anwendung m glichst problemlos auch unter anderen Linux Versionen laufen sollen W hlen Sie SUSE wenn Sie eher Wert auf eine einfache installation und Konfiguration legen Linux ist das ideale Betriebssystem f r Programmierer da es kostenlos mit allen erdenklichen Programmiersprachen und Werkzeugen ausgestattet wurde Nahezu alle Programme werden als Open Source ver ffentlicht also mit Quelltext Dies erm glicht Programmierern die Programme nach eigenen W nschen zu ver ndern sie durch Untersuchen des Quelltextes zu pr fen oder auf deren Basis eigene Programme zu schreiben Im Gegensatz zur Firma Microsoft die zunehmend eigene Ideen als Weltstandard forciert arbeiten die Linux Programmierer gemeinsam am gro projekt Linux Das f hrt dazu dass die Programme gut zusammen passen obwohl sie von unterschiedlichen Entwicklern kommen Linux ist haupts chlich kostenlos Daher gibt es auch in den meisten F llen keinen kommerziellen Support von den Entwicklern Doch Firmen wie SuSE
276. s obige Script legt zuerst mit dem touch Befehl eine Logdatei an falls keine existiert Dann wird die Datei im old umbenannt Danach legt es eine neue Datei an und schreibt mit dem echo Befehl einen Header hinein Der Header enth lt ein Javascript dass f r eine min tliche Aktualisierung der Anzeige im Webbrowser sorgt Dann schreibt das Script mit der case Anweisung einen Farb Befehl in die Datei gefolgt von dem Alarmtext Danach kopiert das Script die ersten 99 Zeilen der alten Datei in die neue Die allererste Zeile der alten Datei wird dabei ausgelassen denn sie enth lt den alten HTML Header den wir nicht doppelt und dreifach in der neuen HTML haben wollen Die neue Alarm Datei enth lt also immer nur die aktuelle Alarm Meldung sowie die letzten 99 alten Meldungen Die Meldungen werden in umgekehrt chronologischer Reihenfolge angezeigt sie sehen also die neueste Meldung immer ganz oben Wenn Sie sich die resultierende HTML Datei genau ansehen werden Sie bemerken dass am Ende lt body gt lt html gt fehlt Das ist Absicht denn sonst m sste man von der alten Datei auch noch die letzte Zeile abschneiden was ziemlich kompliziert w re Alle mir bekannten Webbrowser zeigen HTML Dateien auch trotz dieses Fehlers korrekt an Seite 210 SMS Anwendungen 6 3 Mehr als 32 Modems Wie sie an der Ausgabe des Statusmonitors vielleicht bemerkt haben unterst tzen die SMS Server Tools maximal 32 Modems gleichzeitig Sollten Si
277. sch mit test Hallo Hallo echo Der echo Befehl zeigt den Exit Code des vorherigen Befehls an ist eine spezielle Variable auf die ich sp ter nochmal zur ck komme De meisten Programmierer bevorzugen die eckigen Klammern weil er sich vom Rest des Shell Scriptes optisch gut abzeichnet Achten Sie auf die Leerzeichen Hier ist es wichtig dass Sie keine Leerzeichen weglassen sonst passiert nicht das was Sie erwarten Texte Vergleichen Text1 Text2 0 wenn beide Texte gleich sind Text1 Text2 0 wenn beide Texte unterschiedlich sind Text1 lt Text2 0 wenn Text1 alphabetisch vor Text2 kommt Text1 gt Text2 0 wenn Text1 alphabetisch nach Text2 kommt z Text 0 wenn der Text leer ist Text 0 wenn der Text nicht leer ist Bei der alphabetischen Reihenfolge stehen die Buchstaben A Z vor a z entsprechend der ASCII Tabelle Zahlen vergleichen Zahl1 eq Zahl2 0 wenn beide Zahlen gleich sind Zahl1 ne Zahl2 0 wenn die Zahlen nicht gleich sind Zahl1 Iit Zahl2 0 wenn Zahl1 kleiner als Zahl2 ist Zahl1 gt Zahl2 0 wenn Zahl1 gr sser als Zahl2 ist Zahl1 le Zahl2 0 wenn Zahl1 kleiner oder gleich Zahl2 ist Zahl1 ge Zahl2 0 wenn Zahl1 gr sser oder gleich Zahl2 ist Sie k nnen nur Integer Zahlen vergleichen das sind Zahlen ohne Nachkommastellen Die Eckigen Klammern oder auch der test Befehl machen nur Sinn wenn man sie zusammen mit Kontroll
278. schlusshinweise im Handbuch des Modems Pin 1 Eingang 1 Pin 2 Eingang 2 Pin 3 Eingang 3 Pin 9 Ausgang 8 36V vom Netzteil Pin 15 Gnd Case HL Case LH YDD am lt Tn PullUp Switch Input KEY 4 3 El es Er Die Alarmeing nge funktionieren nur wenn das Modem extern mit Strom versorgt wird Der interne Akku versorgt diesen Teil des Ger tes nicht mit Notstrom Konfigurieren Sie das Modem zun chst so dass es die PIN nach dem Einschalten automatisch eingibt denn es soll sp ter selbstst ndig ohne Computer als Alarm Sender eingesetzt werden AT CPIN 1234 amp CNF PIN 1 Stellen Sie nun die SMSC Nummer ein AT CSCA 49172270000 AT CSAS Mit dem n chsten Befehl legen Sie die Zielrufnummer f r die Alarm Nachrichten fest sowie die gew nschten Textinhalte amp CNF KEY1 501721234567 Alarm Signal 1 H amp CNF KEY2 501721234567 Alarm Signal 2 H amp CNF KEY3 501721234567 Alarm Signal 3 H H bedeutet dass ein Alarm gesendet wird wenn der Eingang auf High wechselt L w rde einen Alarm beim Wechsel auf Low senden und E sendet einen Alarm in beiden F llen Von nun an k nnen Sie das Modem vom Computer trennen und als eigenst ndigen Alarm Sender benutzen Bei Aktivierung einer der drei Eing nge wird der gerade eingestellte Text Alarm Signal x gesendet Seite 213 SMS Anwendungen Bei Bedarf k nnen Sie das Falcom Modem zus tzlich anweisen regelm ssig eine ich lebe noch Kurzmit
279. scii Format AT CMGF 1 welches f r viele Anwendungen nicht geeignet ist Im Ascii Modus kann das Modem n mlich nur 140 statt 160 Buchstaben senden und es kann keine Bin rdaten Klingelt ne Logos etc senden Manche Modem unterst tzen den Ascii Modus gar nicht Die folgenden Befehle brauchen Sie zum Empfangen AT CPMS SM legt fest dass das Modem empfangene Kurzmitteilungen auf der SIM Karte speichern soll Wenn Ihr Modem den Befehl nicht unterst tzt dann kann es sowieso nur auf der SIM Karte speichern Der Parameter ME ist das Gegenteil und speichert Kurzmitteilungen im Arbeitsspeicher des Modems Viele Leute berichteten mir dass man keine SMS aus dem ME Speicher auslesen kann Meine eigenen Tests waren aber erfolgreich Wenn Sie damit ebenfalls Probleme haben arbeiten Sie einfach nur mit dem SM Speicher dann klappt es auf jeden Fall AT CPMS fragt ab wie weit der Speicherplatz f r SMS belegt ist Das Modem antwortet beispielsweise mit CBMS SM 3 20 SM 0 20 39M 0 20 Der erste Block bezieht sich auf die empfangenen Nachrichten Der zweite Block bezieht sich auf gesendete Nachrichten Der dritte Block wird nur benutzt wenn Sie das Modem auf eine besondere Art initialisieren auf die ich in diesem Buch nicht eingehe Die Abk rzung in den Anf hrungsstrichen zeigt an wo die Nachrichten gespeichert werden im obigen Beispiel bedeutet SM SIM Karte Danach folgt die Anzahl der tats chlich gespeicherten SMS und die G
280. sh echo Geben Sie ein Wort ein read Wort case Wort in rot gruen echo Sie haben rot oder gr n eingegeben gelb echo Sie haben gelb eingegeben echo Sie haben etwas anderes eingegeben esac Seite 134 SMS Anwendungen 4 9 9 5 while do done Die while Schleife f hrt einen Block von Befehlen wiederholt aus solange eine Bedingung erf llt ist oder ein Testbefehl O zur ckliefert Ein Beispiel test23 sh bin sh while read Text do echo Sie haben Text eingegeben done Solange der read Befehl erfolgreich war wird der echo Befehl wiederholt Hierbei ist es n tzlich zu wissen wann read denn nicht erfolgreich ist n mlich wenn Sie Strg D dr cken Auch bei der while Schleife k nnen Sie test oder die eckigen Klammern benutzen test24 sh bin sh echo Geben Sie etwas ein oder nur Enter zum beenden read Text while Text do echo Danke read Text done Sie k nnen hier beliebig viele Zeilen Text eingeben Doch wenn Sie einfach nur Enter dr cken also eine Leerzeile wird die Schleife beendet 4 9 9 6 for in do done Die for Anweisung f hrt einen Programmabschnitt mehrmals aus und zwar f r jedes Element in einer Liste Anhand des folgenden Beispiels kann man dies nachvollziehen test25 sh bin sh for Farbe in rot gelb gruen blau do echo Die Farbe ist Farbe done Dieses Script erzeugt die Ausgabe Die Farbe ist rot Die Farbe ist gelb Die Farbe
281. sich der Statusbericht bezieht Die dritte Zeile ermittelt den Statuscode Neu ist hier die Verwendung von Sed Das ist n tig denn Formail k mmert sich nur um den Vorspann Abschnitt innerhalb der SMS Datei Die Statusinformationen finden Sie aber nicht im Vorspann sondern im Textabschnitt Der Befehl sed e 1 7d lt 2 liest die SMS Datei ein und bergibt sie dem Sed Programm als Eingabe Sed entfernt davon die ersten sieben Zeilen 1 7d Was brig bleibt ist der Textabschnitt der SMS Datei und nun k nnen wir Formail darauf loslassen um wie gewohnt die drei interessanten Felder zu extrahieren Die Ausgabe von Sed wird also durch das Zeichen an Formail umgeleitet Der dritte Befehl beinhaltet noch eine weitere Umleitung und zwar nach cue l d Der Status Code steht n mlich zusammen mit dem Statustext in einer einzigen Zeile z B so 0 Ok short message received by the SME Der Cut Befehl zerlegt die zeile in Felder und liefert davon nur das erste Feld f1 Als Trennzeichen wird logischerweise das Komma angegeben d Nun haben wir alle Statusinformationen Zusammen und zwar Wann die SM ausgeliefert wurde Der Fehlercode oder 0 bei erfolgreicher Auslieferung Die ID Nummer der Nachricht auf die sich der Statusbericht bezieht Statusberichte werden nicht einfach in die Tabelle eingef gt F r die zuvor gesendete SM gibt es ja bereits eine Zeile in der Tabelle Unsere Aufgabe ist nun herauszufinden
282. sich herausgestellt dass sie f r professionelle Anwendungen nicht stabil genug funktionieren Selbst Handies die im normalen Tagesgebrauch absolut zuverl ssig funktionieren machen oft pl tzlich Probleme sobald sie mit einem Computer verbunden werden Mobiltelefone sind nicht f r st ndigen Gebrauch gebaut Die M glichkeit einen Computer anzuschliessen ist f r Notebooks gedacht und nur f r tempor ren Gebrauch 90 aller Support Anfragen mit Problemberichten zum Thema SMS beziehen sich auf Mobiltelefone Deshalb rate ich dringend davon ab Mobiltelefone an Computer anzuschliessen F r Testzwecke mag das eine feine Sache sein aber nicht f r professionelle Anwendungen this e Da die angebotene Produktpalette beinahe monatlich wechselt kann ich in diesem Buch keine Mobiltelefone empfehlen Bitte beachten Sie dass nahezu alle Mobiltelefone zwar Status Reports empfangen k nnen diese aber f r den Computer unerreichbar sind und nicht ausgelesen werden k nnen Auch der Empfang und das Senden von bin ren Nachrichten mit 8 Bit ist mit Mobiltelefonen nicht oder nur eingeschr nkt m glich Wenn Sie ein serielles Kabel benutzen dann muss dieses Hardware Handshake und RS232 Protokoll unterst tzen FBUS und MBUS Kabel sind nicht geeignet Viele nicht originale Anschlusskabel unterst tzen kein Hardware Handshake w hrend die originalen Kabel immer vollst ndig beschaltet sind Die Infrarot Schnittstelle hat sich unter
283. sie unter anderem auf eine Defragmentierung des Arbeitsspeichers was fr her oder sp ter zur bekannten Verlangsamung des Systems und zu mangelnder Verf gbarkeit gro er zusammenh ngender Speicherbl cke f hrt Bei Windows 95 98 und ME habe ich mehrmals beobachtet dass die Uhr nach einigen Tagen Betriebszeit ungenau wurde Der Uhrenchip auf dem Mainboard lief aber genau und nach einem Neustart stimmte die Zeitanzeige wieder Windows ist eine feine Sache wenn Sie lediglich einen Fileserver aufbauen wollen In allen anderen F llen sind Sie jedoch in der Regel darauf angewiesen zus tzliche Software zu kaufen z B f r Webserver eMail Fax Statistische Auswertung zeitgesteuerte Programme Da die Softwareentwicklung f r Windows im allgemeinen nicht Open Source ist k nnen Sie die erworbenen Programme nicht ver ndern Die Verkn pfung unterschiedlicher Programme unterschiedlicher Hersteller ist auf Windows Systemen typischerweise nicht m glich Windows Softwarehersteller konkurrieren so stark miteinander dass Sie in der Regel jegliche Zusammenarbeit mit anderen Firmen verweigern Ein gro er Teil der Server Software kann nat rlich direkt von Microsoft bezogen werden und die Programme lassen sich gut miteinander verkn pfen Doch dann h ngen Sie von einem einzigen Hersteller ab Bitte bedenken Sie auch dass Windows und Microsoft Programme immer wieder das Haupt Angriffsziel von Viren sind Seite 20 SMS Anwendungen 2 5 2
284. slphp ini ffnen Sie die Datei in einem Editor ndern Sie vier Zeilen da sie so aussehen display_errors on doc_root C Programme Apache Software Foundation Apache2 2 htdocs extension dir c php ext extension php mysql dll Speichern Sie die nderungen und ffnen Sie dann die Datei C Programme Apache Software Foundation Apache2 2 conflhttpd conf Im Startmen finden Sie daf r unter Apache einen Men punkt F gen Sie an das Ende des LoadModule Abschnittes eine Zeile ein LoadFile C php php5ts dll LoadModule php5 module C php php5apache2 2 d11 AddType application x httpd php php Jetzt beenden Sie den Apache Monitor in der Startleiste und starten Sie ihn erneut Stoppen und Starten Sie ebenfalls den Apache Webserver Seite 61 SMS Anwendungen 4 2 2 4 Apache PHP und MySQL Testen Testen Sie Ihren Webserver nun bitte Starten Sie einen WebBrowser auf dem Webserver und geben Sie in die URL Zeile ein http localhost Starten Sie einen WebBrowser auf einem anderen Computer und geben Sie in die URL Zeile ein http ihr_webserver_name Sie sollten in beiden F llen eine Testseite von Apache zu sehen bekommen Nun sollten Sie die PHP Funktion und die Anbindung an die MySQL Datenbank testen Erstellen Sie auf dem Webserver die Datei c programme Apache Software Foundation Apache2 2 htdocsitest php mit folgendem Inhalt lt html gt lt body gt Das ist HTML Text lt br gt lt php print Das ist PHP T
285. sondern nur noch Kommas Im Fall von Eingabe Trennzeichen k nnen Sie nicht nur einzelne Zeichen benutzen sondern richtige regul re Ausdr cke wie bei grep BEGIN FS print 1 52 7 Hier werden sowohl Leerzeichen als auch Kommas als Trennzeichen verwendet Die Zeichenfolge wird als doppeltes Trennzeichen betrachtet weil sie zweimal auf den regul ren Ausdruck passt Ergebnis Stefan Frings Programmiert Bill Gates War Golden Gate Ist Wenn die Zeichenfolge nur als ein Trennzeichen betrachtet werden soll mu lediglich der Regul re Ausdruck ver ndert werden BEGIN FS print 1 2 6 Der Kommentar beginnt mit Feld 6 weil nicht mehr als doppeltes Trennzeichen gez hlt wird Schauen Sie im Kapitel ber grep nach um mehr ber regul re Ausdr cke zu erfahren Seite 150 SMS Anwendungen 4 10 5 Eingebaute Variablen Awk kennt ein paar eingebaute Variablen die Sie verwenden k nnen Sie haben bereits OFS und FS kennen gelernt Ausgabe Feldtrenner Print f gt dieses Zeichenfolge anstelle von Kommas ein Vorgabewert ist ein Leerzeichen Feldtrenner Zeilen werden mit diesem regul ren Ausdruck in Felder zerlegt Vorgabewert ist ein oder mehrere Leerzeichen oder Tabulatoren Ausgabe Datensatztrenner Print schlie t jede Zeile mit diesem Zeichen ab Vorgabewert ist ein Zeilenumbruch Datensatztrenner Eingabezeilen werden durch dieses Zeichen getrennt Vorgabewert ist ein Ze
286. sp ter die SMS Server Tools beim Booten automatisch laden wollen benennen Sie die Datei s82sms einfach in S82sms gro buchstabe S um Warten Sie damit aber bitte bis Sie das Programm konfiguriert und getestet haben Seite 56 SMS Anwendungen 4 2 1 8 Merkliste f r Solaris Merken Sie sich bitte die folgenden Dateien da sie nicht in jedem Betriebssystem identisch sind In sp teren Kapiteln werde ich nicht mehr auf Betriebssystem spezifische Details eingehen SMS Server Tools starten letc init d sms start stoppen letc init d sms stop Konfigurationsdatei letc smsd conf Fehler Protokoll Datei varll og smsd log SMS Warteschlangen var spool sms Apache Webserver starten letc init d apache start stoppen letc init d apache stop Konfigurationsdatei lusr local apache2 conf httpd conf Fehler Protokoll Datei lusr local apache2 logs error log Webseiten lusr local apache2 htdocs MySQL Datenbank starten letc init d mysqld start stoppen letc init d mysqld stop Client mysql u root p Crontab ndern EDITOR dtpad export EDITOR crontab e Seite 57 SMS Anwendungen 4 2 2 Softwareinstallation unter Windows Diese Schritt f r Schritt Installationsanleitung geht davon aus dass Sie die Software auf einem leeren bzw neuen PC mit einer beliebigen Windows Version installieren Gehen Sie dieses gesamte Kapitel der Reihe nach durch 4 2 2 1 Windows Programme Installieren Installieren Sie zuerst Windows von der
287. sprogramm aufrufen bergeben sie dem Ereignisprogramm immer zwei oder drei Argumente Art des Ereignisses RECEIVED REPORT SENT oder FAILED Name der SMS Datei ID Nummer der SM nur bei SENT Gesendete SMS Dateien werden nach dem Senden von der Netzanbieter Warteschlange entweder gel scht in die Warteschlange f r gesendete Dateien verschoben oder in die Warteschlange f r fehlgeschlagene Dateien verschoben Das h ngt von der Konfigurationsdatei ab und ob das Senden erfolgreich war Ereignisprogramme werden immer aufgerufen bevor die Dateien verschoben oder gel scht werden Das zweite Argument 2 verweist demnach immer auf eine lesbare Datei in einer Netzbetreiber Warteschlange oder in der Warteschlange f r empfangene Nachrichten Ein ganz einfaches Ereignisprogramm das alle empfangenen SM an eine feste eMail Adresse weiter leitet sieht z B so aus bin sh if 1 RECEIVED then cat 2 usr sbin sendmail root localhost fi Seite 190 SMS Anwendungen 5 10 Alarm Programme Alarm Programme sind externe Programme die von den SMS Server Tools gestartet werden um Probleme zu melden Betrachten Sie die Alarm Programme als Erg nzung zur Protokolldatei Sie k nnten sich zum Beispiel eine eMail senden lassen oder eine Blitzlicht einschalten wenn die SMS Server Tools ein Problem feststellen Viele gro e Firmen haben ein zentrales System zu Sammlung und Anzeige von St rmeldungen ihrer Maschinen M
288. st dass sie als letzte die Test Warteschlange hinzuf gen Sie k nnen nun gezielt Nachrichten ber jedes einzelne Modem versenden indem Sie im Vorspann der SMS Dateien den Modemnamen als Provider angeben z B To 491721234567 Provider GSM1 SELF TEST MESSAGE Die empfangenen Test Nachrichten sollen nicht im Verzeichnis var spool sms incoming landen sondern in die Modemspezifischen Verzeichnisse verschoben werden Das erledigt ein Ereignisprogramm dass Sie bitte als Eventhandler in die Konfigurationsdatei letc smsd con eintragen eventhandler usr local bin self test eventhandler sh Das Scipt hat diesen Inhalt self test eventhandler sh bin sh if 1 RECEIVED then if grep SELF TEST MEssAGE 2 gt dev null then modem cat 2 formail zx Subject mv 2 var spool sms self test modem in fi fi Es verschiebt alle empfangenen Nachrichten mit dem Text SELF TEST MEssAGE in das entsprechende Testverzeichnis mit der Endung in Test Nachrichten vom Modem GSM1 landen also im Verzeichnis GSM1 in und so weiter Sie haben sich nun die M glichkeit geschaffen gezielt mit jedem einzelnen Modem Testnachrichten zu versenden und Sie empfangen diese in gesonderte Verzeichnisse anstatt var spool sms incoming Jetzt brauchen Sie noch ein Script dass regelm ssig Testnachrichten sendet und kontrolliert ob sie zeitgerecht empfangen werden Das folgende Script erledigt diesen Job f r ein einzelnes Modem sie m ssen es
289. st in der Regel mangelhaft Viele Handies die als Mobiltelefon absolut zuverl ssig sind weisen beim Dauerbetrieb an einer seriellen Schnittstelle pl tzlich erhebliche M ngel auf dass sich fast jeder Problembericht auf ein Handy bezieht und kaum jemand mit GSM Modems Probleme hat belegt dies F r die Auswahl eines GSM Modems sind diese Kriterien wichtig Hat das Modem eine serielle Schnittstelle e Ist die Antenne absetzbar FME Buchse vorhanden Unterst tzt das Modem SMS Befehle nach GSM 07 05 oder GSM 07 07 Standard Unterst tzt das Modem den Empfang von Statusberichten Kann das Modem Bin rdateien 8bit SMS senden und empfangen Funktioniert das Modem zuverl ssig Seite 188 SMS Anwendungen 5 8 Status Monitor Die SMS Server Tools k nnen Sie st ndig ber den Belegungsstatus der einzelnen GSM Modems informieren Sie m ssen smsd dazu mit der Option s starten Nach dem Start zeigt smsd den Status der Modems an iiiriisssisss iiiriisssisss KEIL Ea Ea Ls La 1 gt gt Immer wenn sich etwas ndert erscheint eine neue Zeile Die letzte Zeile ist dementsprechend immer die aktuelle Es gibt f r jedes Modem einen Buchstaben Die Modems werden in der selben Reihenfolge angezeigt wie die in der Konfigurationsdatei in der devices Zeile aufgelistet sind Das obige Beispiel hat also 13 Modems Das Modem sendet eine SM sending Das Modem empf ngt eine SM receiving Das Modem ist ni
290. sten beiden W rter aus Das Komma beim Print Befehl legt fest dass zwischen die beiden W rter ein Trennzeichen ausgegeben werden soll Das Trennzeichen ist ein Leerzeichen was Sie sicher nicht berrascht hat Die Ausgabe sieht so aus Seite 149 SMS Anwendungen Stefan Frings Bill Gates Golden Gate Ohne dieses Trennzeichen erscheinen die Namen direkt hintereinander also so print 1 2 StefanFrings BillGates GoldenGate Sie k nnen auch Texte dazwischen einf gen print Vorname 1 Nachname 2 Vorname Stefan Nachname Frings Vorname Bill Nachname Gates Vorname Golden Nachname Gate Das Komma f gt normalerweise ein Leerzeichen ein Sie k nnen auch andere Zeichen als Standard Trennzeichen festlegen BEGIN OFS print 1 2 Zu Beginn legt dieses Script als Trennzeichen fest OFS bedeutet Output Field Separator Die Ausgabe sieht dann so aus Stefan Frings Bill Gates Golden Gate Sie haben nun gelernt wie Trennzeichen in Ausgaben ver ndert werden Doch auch f r die Eingabe k nnen Trennzeichen ver ndert werden Awk ist hier nicht nur auf Leerzeichen und Tabulatoren beschr nkt Verwenden Sie die obige Testdatei test1 txt mit diesem Script BEGIN FS print 2 Sie erhalten als Ausgabe das Zweite Feld hinter dem Komma Programmiert SMS Server Tools War der reichste Mann der Welt Ist eine Br cke Leerzeichen werden also nun nicht mehr als Trennzeichen betrachtet
291. strukturen wie z B if then else fi benutzt Ein Beispiel test13 sh bin sh zahl 12 if Zahl gt 5 then echo Die Zahl Zahl ist gr sser als 5 else echo Die Zahl Zahl ist nicht gr sser als 5 fi Schauen Sie sich das Ergebnis an ndern Sie Zahl 12 in Zahl 3 um und vergleichen Sie das Ergebnis mit der vorherigen Ausgabe Und hier ist noch ein Beispiel test14 sh bin sh Name Manuela if Name Manuela then echo Der Name Name ist Manuela else echo Der Name Name ist nicht Manuela fi Seite 132 SMS Anwendungen Dateinamen pr fen r Dateiname 0 wenn die Datei lesbar ist w Dateiname 0 wenn die Datei beschreibbar ist x Dateiname 0 wenn die Datei ausf hrbar ist f Dateiname 0 wenn es eine normale Datei ist d Dateiname 0 wenn es eine Verzeichnis ist L Dateiname 0 wenn es ein symbolische Link ist e Name 0 wenn der Name als Datei Verzeichnis oder Link existiert Dazu ein Beispiel test15 sh bin sh if f tmp test txt then echo Die Datei tmp test txt existiert fi 4 9 9 3 Mehrere Vergleiche verkn pfen Mehrere Vergleiche k nnen logisch mit UND und ODER verkn pft werden Auch die Negation gibt es Text1 Text2 a Text3 Text4 a ist eine UND Verkn pfung Text1 Text2 o Text3 Text4 o ist eine ODER Verkn pfung Text1 Text2 ist die negation Sie macht wen
292. t Die nderungen werden erst nach einem Neustart des Apache Webservers wirksam Schreiben Sie nun bitte die folgende Datei und speichern Sie sie als test html in das htdocs Verzeichnis ab lt html gt lt body gt Dies ist meine erste HTML Seite lt body gt lt html gt Ein gutes Buch ber HTML ist brigens Selfhtml von Stefan M nz Dieses Buch gibt es sowohl in gedrucker Form als auch Online im Internet unter http www selfhtml de Pr fen Sie ob Sie diese Datei in irgendeinem Web Browser aufrufen k nnen indem Sie in die URL Zeile http meinserver test html eingeben Anstelle von meinserver setzen Sie bitte den Namen oder die IP Adresse Ihres Webservers ein Falls nichts erscheint dann pr fen Sie ob der Apache Webserver gestartet wurde Das geht z B so ps ef grep httpd root 1058 Ll 020 13 2 00 00 00 usr local apache bin httpd nobody 1073 1058 0 20 13 00 00 00 usr local apache bin httpd nobody 1074 1058 0 20 13 00 00 00 usr local apache bin httpd nobody 1 0 75 T0587 100 20 13 2 00 00 00 usr local apache bin httpd nobody 1076 1058 0 20 13 00 00 00 usr local apache bin httpd nobody 1077 1058 0 20 13 00 00 00 usr local apache bin httpd stefan 5896 5865 0 20 28 pts 1 00 00 00 grep httpd Die letzte Zeile mit dem grep Befehl z hlt nicht Sie sehen nun wieviele Prozesse vom Apache Webserver laufen Sollten Sie keine sehen dann wurde der Webserver nicht gestartet Zur Problembehebung kann auch ein B
293. t geht smsd davon aus dass das Modem defekt ist Das Programm blockiert dieses Modem dann solange wie sie hier angeben in Sekunden So verhindern Sie dass sich Ihr Computer sinnlos mit einem defekten Modem besch ftigt und das Senden einer SM nach der anderen fehlschl gt Der Vorgabewert ist 3600 Sekunden also eine Stunde Erst nach Ablauf dieser Zeit versucht smsd erneut das Modem zu benutzen eventhandler Programmname Immer wen eine Kurzmitteilung gesendet oder empfangen wurde oder wenn das Senden fehlgeschlagen ist kann smsd ein externes Programm aufrufen Geben Sie das Programm mit vollem Pfad an Ereignisprogramme werden sp ter detailliert erkl rt stats Verzeichnis Diese Einstellung legt fest in welches Verzeichnis smsd Statistiken speichern soll Wenn Sie diese Angabe weglassen werden keine Statistiken geschrieben Wie die Statistik Dateien benannt werden und wie deren Inhalt aussieht wird sp ter erkl rt stats_interval Zahl Hiermit legen Sie fest in welchen Zeitabst nden Statistik Dateien geschrieben werden sollen Der Wert ist in Sekunden 3600 bedeutet also dass Statistiken st ndlich geschrieben werden Smsd stellt sicher dass die Zeitpunkte der Dateien immer gleich sind egal wann sie smsd gestartet haben Beim Wert 3600 werden Statistiken also immer zu jeder vollen Stunde geschrieben und nicht 60 Minuten nach dem Programmstart blacklist Dateiname Legt den Dateinamen der schwarzen Liste fest Wenn Sie d
294. tehen Es ist nicht fest geregelt was passiert wenn Sie zuviele oder zu wenig Werte angeben Seite 125 SMS Anwendungen 4 9 3 Zeichenketten Zeichenketten oder Texte schreiben Sie grunds tzlich in Anf hrungsstriche Manche Befehle funktionieren meist auch ohne z B echo Sie sollten sich dennoch angew hnen Zeichenketten immer in Anf hrungsstriche einzuschliessen Beispiel test3 sh bin sh echo Hallo Stefan echo Hallo Stefan Diese beiden Befehle erzeugen nicht die gleiche Ausgabe Im zweiten Fall werden Sie zwischen Hallo und Stefan nur ein Leerzeichen sehen weil Sie die Anf hrungsstriche weggelassen haben Tats chlich handelt es sich nun n mlich nicht mehr um einen einzigen Text sondern um zwei Texte Die Shell benutzt Leerzeichen und Tabulator Zeichen als Trennzeichen zwischen zwei Argumenten wobei mehrere aufeinanderfolgende Trennzeichen ignoriert werden Wenn Sie innerhalb einer Zeichenkette ein Steuerzeichen ausgeben wollen dass normalerweise eine andere Funktion hat m ssen Sie ein voranstellen test4 sh bin sh echo Hallo Stefan Es zeigt Hallo Stefan an Ein weiteres Steuerzeichen dass Sie nur mit vorangestellem anzeigen k nnen ist das Dollar Zeichen Das Zeichen selbst bekommen Sie logischerweise mit Sie k nnen Zeichenketten auch in einfache Anf hrungsstriche schreiben Der Unterschied ist dass innerhalb einfacher Anf hrungsstriche und keine besondere Bedeu
295. tei wird der rm Befehl aufgerufen der sie l scht 6 1 3 Alte SQL Daten l schen Wenn Sie das Script mysmsd benutzen werden alle gesendeten und empfangenen Kurzmitteilungen in einer Tabelle protokolliert Diese Daten sollten sie regelm ssig l schen z B durch den SQL Befehl use smsd delete from sms_log where sent lt now interval 100 day Dieser Befehl l scht alle Tabelleneintr ge die lter als 100 Tage sind In dem where Ausdruck werden zwei MySQL Funktionen angewendet die ich Ihnen in diesem Buch noch nicht vorgestellt habe Sie finden deren Erkl rung in der MySQL Dokumentation Kapitel 6 3 4 Die Funktion now liefert das aktuelle Datum mit Uhrzeit Die Funktion interval 100 day liefert einen Zahlenwert f r 100 Tage Diesen kann man von einem Datum subtrahieren und erh lt so das Datum von vor 100 Tagen Wenn Sie diesen Befehl in ein Shell Script verpacken k nnte das Script so aussehen delete_old_sql sh bin sh SQL HOST localhost SOL_USER root SOL PAssWORD SQL DATABASE smsd SQL TABLE sms_log if SSOL PAssWORD then SQL ARGS p SQL PAssWORD else SOL ARGS fi SOL ARGS h SQL HOST u SQL USER SQL_ARGS D SQL_DATABASE s e mysql SQL ARGS delete from sms_log where sent lt now interval 100 day Als Cron Job installiert l scht es regelm ssig alle alten SQL Daten 14 0 usr local bin delete old sql sh gt dev null 2 gt 481 Unter Windows muss der
296. teilung zu senden So k nnen Sie an der zentralen Empfangsstelle sehen dass das Modem nicht funktioniert und dass die Stromzufuhr nicht unterbrochen ist Geben Sie dazu ein amp CNF MSG s01721234567 Test 60 Die 60 bedeutet dass dieser Text alle 60 Minuten gesendet wird Um die Testnachricht abzuschalten stellen Sie O Minuten ein 7 1 2 Empfangerseite Auf der Empf ngerseite installieren Sie die SMS Server Tools wie weiter vorne im Buch beschrieben Nun brauchen Sie nur noch ein Ereignisprogramm dass alle Alarme anzeigt Das folgende Ereignisprogramm erzeugt eine HTML Datei in der man immer die letzten 1000 Alarme sehen kann Sie werden in umgekehrt chronologischer Reihenfolge angezeigt Die aktuellsten Meldungen erscheinen immer oben Die Liste aktualisiert sich jede Minute von selbst Speichern Sie das folgende Script als usr local bin alarmevent sh ab bin sh if 1 RECEIVED then exit fi file var log smsd alarm html touch file mv file file old echo lt html gt lt body bgcolor lightgray onLoad window setTimeout location reload 60000 1 gt gt file SENT formail zx Sent lt 2 TEXT formail I lt 2 echo lt b gt SENT lt b gt TEXT lt br gt gt gt file sed e 2 100p silent file old gt gt file Dann richten Sie es als Ereignisprogramm in der Konfigurationsdatei smsd conf ein Die dazu n tige Zeile lautet eventhandler usr local bin alarmevent sh Vergessen
297. telle an Unter Linux hei t der erste serielle Anschluss dev ttySO und der zweite heisst dev ttyS1 Unter Windows heissen sie dev com1und dev com2 Solaris nennt den ersten seriellen Anschluss dev cuaa und den zweiten dev cuab Mit der Einstellung incoming yes oder incoming no bestimmen Sie ob dieses Modem auch Nachrichten empfangen soll SIM Karten sind normalerweise mit einer PIN gesichert Durch die Option pin teilen Sie diese den SMS Server Tools mit Bei Handies brauchen Sie diese Option nicht denn dort geben Sie die PIN immer ber die eingebaute Tastatur ein wenn Sie das Handy einschalten Ich m chte Ihnen empfehlen die PIN der SIM Karte zu deaktivieren denn dann laufen die SMS Server Tools etwas schneller Legen Sie die SIM Karte dazu in ein Handy ein und deaktivieren Sie die PIN mit dem Men des Handy Die Bedienungsanleitung des Handies sollte erkl ren wie das geht Seite 168 SMS Anwendungen 5 2 2 Mehrere Modems und Netzanbieter Nun zeige ich Ihnen wie Sie die SMS Server Tools f r mehrere Modems und mehrere Netzanbieter einrichten Betrachten Sie dieses Kapitel als Beispiel sie m ssen sich nicht 100 daran halten Experimentieren Sie ggf mit anderen Zuordnungen von Modem zu Netzanbieter um f r Ihre Anwendung die optimale Leistung zu erzielen devices GSM1 GSM2 GSM3 GSM4 GSM5 queues D1 var spool sms D1 D2 var spool sms D2 02 var spool sms 02 EPLUS var spool sms EPLUS
298. tensicherung na seine En ie oli 102 4 8 Dynamische Webseiten mit PHP 2 s2 2422220 288 A A id 104 4 8 1 Die erste Webseite 2 0 m een in ri IE AE RSS oe 104 4 8 2 Die erste dynamische Webseite 244usn440nnnnsunnnnnnnnnnnnnnannnnnnnnnnnnnnnnnnnnnnnnnnnannnnnnnnnnnnnnnnannnnnnnnnnnnnnnnnnnnnnnnnnnannnnnnnnnn 105 4 8 3 Printi printf und Sprintin ehelichen tin 106 4 84 Variablen Und Datentypen ara nee 107 RA A O HOFER 109 4 8 0 Konttollstr kturen u een A A a een ee 111 4 8 6 1 A O NN 111 AZ CA CAS EN EN as O eiii 112 4 8 6 3 while und do WE A A IEA its 113 A RN AN 113 A NN 114 4 8 6 6 break continue Und Pldiiacinin A a DREH beste Rapid 114 48 7 includes ON 115 Seite 4 SMS Anwendungen NN 116 4 8 9 Formular Variablen und Datei Uploads 240r4200unnnnnnnnnnnnnnnnnnnnnonannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnsnnnnnnnannnnnnnnnnannnnn 117 48 10 SQL Abfragen a ii AA AA Rear en HEHE Ea E Tees A DEA AE dE 118 4 8 11 Lokale und globale Variablen 2 2400444400nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnannnnnnnnnnnnnnannnnnnnnnnnnnnnnnnnnnnnn 120 4 8 12 Vanable Vara ica e eE aaka arr e a ea ana teren teren Aedo A La ie dns DiR RL here 122 4 8 13 PHP Scripte ausserhalb von Apache en A krachen 122 E E A NN 123 4 9 Shell Script Programmierung su 42 42 ea AE pa ARA 124 4 9 1uDas erste Shell Senp A A a ee ee 124 4 9 2 Der print
299. ternativen abfragen wollen wird der Programmcode schnell un bersichtlich Ein schlechtes Beispiel w r dies if name Maria Befehle_fuer_Maria elseif name Josef Befehle_fuer_Josef elseif name Martin Befehle_fuer Martin elseif name Kerstin Befehle_fuer_Kerstin else print Unbekannter Name PHP gibt Ihnen die M glichkeit solche langen if Anweisungen anders auszudr cken Vielleicht gef llt Ihnen die switch case Anweisung besser switch name case Maria Befehle_fuer_Maria break case Maria Befehle_fuer_Josef break case Maria Befehle_fuer_Martin break case Maria Befehle_fuer_Kerstin break default printf Unbekannter Name endswitch Vergessen Sie die break Befehle nicht sonst werden die nachfolgenden Befehle ungewollt ausgef hrt Die switch case Anweisung ist eine Alternative zur if Anweisung Entscheiden Sie selbst wann Sie welche Variante bevorzugen Seite 112 SMS Anwendungen 4 8 6 3 while und do while Mit while f hren Sie einen Programmabschnitt mehrmals aus und zwar solange eine Bedingung erf llt ist Hinter while m ssen Sie einen Ausdruck in Klammern schreiben Der Programmabschnitt wird solange wiederholt wie der Ausdruck wahr ist TRUE oder nicht Null Dabei wird vor jeder Wiederholung gepr ft ob der Ausdruck wahr ist while a lt 3 Befehle Befehle Befehle Eine andere Variante der while Schleife ist die
300. tige Funktionen L scht ein Element aus einem Array Beispiele text Hallo Bruderchen gsub Bruder Br der text Ergibt Hallo Br derchen text GemiSChT gESchrieBEn Seite 158 SMS Anwendungen print tolower text Ergibt gemischt geschrieben text Fehlercode 45 match text 0 9 1 if RSTART gt O print substr text RSTART 1 RLENGTH 2 Ergibt 45 Match sucht nach einer Zahl mit mindestens einer Ziffer die innerhalb von eckigen Klammern steht Die Position und L nge wird in RSTART und RLENGTH gespeichert Der Regul re Ausdruck setzt sich so zusammen 0 9 sucht nach einer Ziffer und sucht nach einer Klammer Das bedeutet soviel wie mindestens 1 mal Mit substr wird dann nur die Zahl selbst ohne die Klammern herausgenommen und dann mit print angezeigt 4 10 17 Eigene Funktionen Eigene Funktionen k nnen am Anfang des Scriptes deklariert werden function verdoppeln a return a 2 print verdoppeln 1 Dieses Script liest eine Textdatei ein in der jede Zeile mit einer Zahl beginnen muss Diese Zahlen werden verdoppelt und dann angezeigt Seite 159 SMS Anwendungen 4 10 18 Awk Beispiel fur SMS Anwendungen Wie sie sehen kann Awk einiges was die Shell nicht kann Die meisten Funktionen von Awk werden Sie vermutlich nicht brauchen Nun stellt sich die Frage warum ich Awk berhaupt erkl re Sie k nnen mit Awk manche einfache Auf
301. tung mehr haben Beispiel test5 sh bin sh echo Dein Name ist SUSER echo Dein Name ist SUSER echo Hallo Stefan echo Hallo Stefan Der erste Befehl zeigt den aktuellen Usernamen an eine Umgebungsvariable der Shell Der zweite Befehl zeigt hingegen nur den Namen der Variable an Die beiden anderen Befehle demonstrieren dass einfache Anf hrungsstriche innerhalb von doppelten Anf hrungsstrichen keine besondere Bedeutung haben und umgekehrt ebenfalls Seite 126 SMS Anwendungen 4 9 4 Variablen Variablen k nnen Sie setzen und wieder auslesen Variablen in Shell Scripten speichern grunds tzlich nur Text Wichtig ist dass sie um den Zuweisungsoperator keine Leerzeichen schreiben test6 sh bin sh variablel Stefan echo Hallo variable variable2 0123 echo variable2 Beim zweiten Echo Befehl wird auch brav 0123 angezeigt weil dies wie bereits geschrieben als Text behandelt wird und nicht als Zahl Daher bleibt die voranstehende Null auch erhalten Ich m chte Ihnen nun eine Eigenart beim Auslesen von Variablen zeigen test7 sh bin sh variable3 Hallo Stefan echo variable3 echo variable3 Dieses Script erzeugt die Ausgabe Hallo Stefan Hallo Stefan Dieses Beispiel demonstriert dass der Variablenname durch den Inhalt ersetzt wird bevor der Text in die einzelnen W rter zerlegt wird Die mehrfachen Leerzeichen werden von der Shell ignoriert Aus dem Text Hallo Stefan sind
302. txt weil txt in eine Liste mit allen passenden Dateinamen umgewandelt wird bevor das Programm gestartet wird Seite 71 SMS Anwendungen Zcygdrive c winnt cd cygdrive c winnt ls txt Active Setup Log txt Reg Save Log txt brndlog txt Bind List Log txt RunOnceEx Log txt setuplog txt editpad txt 2 Mit Notepad geht das so nicht denn Notepad kann nur eine Datei gleichzeitig ffnen Ausf hrbare Programme haben unter Unix meistens keine besondere Endung w hrend Windows Programme immer an der Endung exe erkennbar sind 4 3 3 Verzeichnisnamen Unter Unix werden Verzeichnisnamen durch Slash getrennt w hrend sie unter Windows durch Backslash getrennt werden Beispiel Is usr locall Der Backslash dient zwei anderen Zwecken Verl ngern Sie eine Befehlszeile indem Sie ans Ende der unvollst ndigen Zeile ein Backslash schreiben z B Is Mein Text doc Dieser Befehl entspricht Is Mein Text doc Bei sehr langen Befehlszeilen mag das n tzlich sein Sparen Sie Anf hrungsstriche um Dateinamen mit Leerzeichen indem Sie ein Backslash vor das Leerzeichen schreiben z B Is Mein Text doc Das Leerzeichen wird in diesem Fall nicht als Trennzeichen f r mehrere Dateinamen betrachtet Es gibt keine Laufwerksbuchstaben Das Hauptverzeichnis des Systems heisst schlicht In der CygWin SHell erscheint das Verzeichnis c cygwin als Hauptverzeichnis Sie wollen nun sicher wissen wie Sie denn in der
303. uft nun alle 300 Sekunden alle eMail f r den konfigurierten aus dem POP3 Postfach ab und sendet sie an das Script email2sms Dieses Script wandelt die eMails in SMS Dateien um und speichert sie in das Verzeichnis f r die herausgehende Warteschlange Die SMS Server Tools senden die Nachrichten dann umgehend Wie Sie sehen ist diese L sung ebenso einfach wie die aus dem vorherigen Kapitel Der Nachteil ist dass Fetchmail die Mails in regelm ssigen Zeitabst nden abrufen muss was zu Verz gerungen im Versand f hrt Der Vorteil ist dass Sie jeden beliebigen bereits existierenden Mailserver benutzen k nnen ohne dort irgendetwas zu konfigurieren Das Script email2sms ist Bestandteil der SMS Server Tools Sie k nnen es sich gerne ansehen um davon zu lernen Das Script ist klein und einfach gehalten Seite 218 SMS Anwendungen 7 4 Absender mit SQL pr fen Wenn Sie eine eMail zu SMS Gateway oder ein Online Formular f r SMS ffentlich anbieten z B im Internet wollen sicher nur bestimmten Personen das Senden von SMS erlauben Sie legen sich dazu eine SQL Tabelle an in der alle berechtigten Absender mit Name und Passwort aufgelistet sind Dann setzen Sie einen Checkhandler ein der bei jeder SMS Datei pr ft ob der Absender zum Senden von SM berechtigt ist Legen Sie die Tabelle durch Eingabe der folgenden Befehle im MySal Client an stefan server gt mysql u root p mysql gt create database smsd Query Ok mysql gt
304. ung egal ist Nur wenn das Wort Witz gefunden wurde wird die Nachricht weiter bearbeitet Mit mktemp wird eine neue SMS Datei erzeugt Mktemp ersetzt die xxxxxx durch eine Zufallszahl Mit echo Befehlen wird die Telefonnummer des Kunden und eine Leerzeile in die SMS Datei geschrieben Anschlie end wird die Artikelnummer mit awk aus der Bestellung extrahiert Der n chste if Befehl pr ft ob ein entsprechender Artikel Textdatei existiert Anschlie end wird entweder der bestellte Text oder eine Fehlermeldung in die SMS Datei geschrieben Die SMS Server Tools werden die Datei automatisch senden Ich m chte die Zeile mit dem awk Befehl genauer erkl ren number echo text awk if match 0 0 9 0 9 0 9 0 9 0 9 print substr 0 RSTART RLENGTH number Sorgt daf r dass das Ergebnis des Befehls in der Variable number gespeichert wird So k nnen wir die Artikelnummer sp ter sehr einfach in den Dateinamen einf gen echo text awk Der Echo Befehl sendet den Text der Bestellung nach awk Wir geben awk also keine Eingabedatei sondern verwenden stattdessen eine Pipe Das Prinzip habe ich in Kapitel 4 10 1 gezeigt if match 0 0 9 0 9 0 9 0 9 0 9 Der match Befehl sucht nach einem Regul ren Ausdruck In diesem Fall wird nach genau 5 Ziffern im Bereich 0 9 gesucht Nur wenn eine 5 Stellige Zahl gefunden wurde wir der n chste print Befehl ausgef hrt print substr 0 RSTART RLEN
305. ungen denn MySQL ist nicht f r alle Anwendungsf lle kostenlos 2 6 6 PHP Programmiersprache PHP ist eine Script Programmiersprache f r Webseiten mit dynamischen Inhalten Wenn Sie z B einen Online Shop anbieten m chten dann verwenden Sie Apache als Webserver und MySQL als Datenbank Mit PHP schaffen Sie die Verbindung zwischen dem Webserver und der Datenbank PHP hnelt der C Programmiersprache Besonders praktisch ist dass Sie PHP Code mitten in HTML Dateien einf gen k nnen genau wie Sie es vieleicht von JavaScript her gewohnt sind Der Vorteil von PHP ist dass die Scripte vom Webserver ausgef hrt werden und nicht vom Webbrowser PHP Scripte k nnen besonders einfach auf SQL Datenbanken zugreifen In vielen F llen k nnen Sie JavaScripte durch PHP Schripte ersetzten und so die l stigen Kompatibilit tsprobleme der Webbrowser umgehen Es werden regelm ssig weltweit Schulungen angeboten Das umfangreiche Handbuch wurde in viele Sprachen auch deutsch bersetzt Sie bekommen alles rund um PHP kostenlos auf der Webseite http www php net 2 6 7 nnCron Lite Das Programm nnCron Lite erm glicht das zeitgesteuerte Starten von Programmen nnCron Lite ist nur f r Windows erh ltlich Es l uft unter allen Windows Versionen Unter Unix gibt es das gleichwertige Programm cron welches zum Standard Umfang jeder Unix Installation geh rt Nach der Installation tragen Sie in die Konfigurationsdatei cron tab ein welches Program
306. urch den Signalisierungskanal zum Empf nger Je nach Wunsch sendet es ausserdem eine Zustellbenachrichtigung an den Absender Seite 9 SMS Anwendungen 1 4 Was ist MMS MMS ist die Abk rzung f r e Mulitmedia e Message e Service Multimedia Messages sind Mitteilungen die neben Text auch Bilder Videos und Audio enthalten k nnen Die neueste Generation von Mobiltelefonen wie z B das abgebildete Sharp GX 10 unterst tzen diese Funktion MMS ist nicht Thema dieses Buches doch da der neue Dienst gerade sehr aktuell und mit SMS stark verwandt ist m chte ich ihn hier kurz vorstellen Eine MMS besteht immer aus einem Text dem man optional Dateien anh ngen kann Diese Vorgehensweise kennt man von eMails Das MMSC bertr gt diese Nachricht ohne Ver nderung zum Empf nger Wenn man eine MMS sendet baut das Mobiltelefon eine Internetverbindung auf genauer WAP und sendet den Text und die Anh nge an das MMSC Das MMSC speichert diese und pr ft zun chst ob der Empf nger als MMS Kunde registriert ist Wenn er nicht registriert ist bekommt er eine gew hnliche SMS mit einer Internetadresse URL unter der er die MMS im Internet mit einem WebBrowser betrachten kann Wenn der Empf nger als MMS Kunde registriert ist bekommt er eine Benachrichtigungs SMS Diese veranlasst das Mobiltelefon eine Internetverbindung genauer WAP aufzubauen um die MMS downzuloaden Nach erfolgreichem Download wird die Nachricht im Mobilte
307. use smsd Database changed mysql gt create table smsuser gt id int auto_increment not null gt primary key id gt name char 40 gt password char 16 gt Query Ok F llen Sie die Tabelle mit einigen Usernamen und Passw rtern mysql gt insert into smsuser set name Michaela Meier password abxdf mysql gt insert into smsuser set name Richard Wagner password blabla Und so weiter Der Checkhandler soll nun so geschrieben werden dass er auch mit eMail Clients benutzt werden kann siehe letztes Kapitel Den Usernamen kann man aus der Absenderadresse der eMail entnehmen f r das Passwort benutzen wir einfach die Betrifft Zeile Absender Michaela Meier lt michaela meier mail isis de gt Empf nger 491721234567 lt sms mailserver de gt Betrifft passwort Text Hallo Welt Das Script email2sms dass sie im vorherigen Kapitel kennen gelernt haben macht daraus eine SMS datei die so aussieht From Michaela Meier To 491721234567 Subject passwort Hallo Welt Schreiben Sie sich nun das Script usr local bin checkhandler sh mit diesem Inhalt bin sh name formail zx From lt 1 to formail zx To lt 1 password formail zx Subject lt 1 SQL ARGS h localhost u root ppasswort D smsd s N B e result mysql SQL ARGS select name from smsuser where name name and password Spassword if z result then exit 1 fi Das Script berpr ft den Abse
308. usr local apache2 htdocs test php Starten Sie nun einen Web Browser und geben Sie http localhost test php oder http lihr_webserver_nameltest php ein Es sollte folgendes erscheinen Das ist HTML Text Das ist PHP Text Es folgt eine MySQL Abfrage root localhost x4fhg425fdfds Die erste Zeile ist ganz normaler HTML Code die zweite testet die PHP integration in den Webserver Die dritte und vierte Zeile testet die Verbindung zur MySQL Datenbank Schauen Sie sich noch einmal das Beispielprogramm an Sie sehen hier deutlich wie ein St ck Programmcode mitten in die HTML Datei eingef gt wurde Anfang und Ende werden durch lt php und gt gekennzeichnet Das PHP Programm verbindet sich mit der SQL Datenbank und fragt die Liste der SQL User mit deren Passw rter ab Die Passw rter sind verschl sselt gespeichert daher sehe Sie ein kryptisches Passwort hinter dem Wort root im Web Browser Seite 67 SMS Anwendungen 4 2 3 5 Merkliste f r Linux Merken Sie sich bitte die folgenden Dateien da sie nicht in jedem Betriebssystem identisch sind In sp teren Kapiteln werde ich nicht mehr auf Betriebssystem spezifische Details eingehen SMS Server Tools starten letc init d sms start stoppen letc init d sms stop Konfigurationsdatei letc smsd conf Fehler Logdatei Ivarllog smsd log SMS Warteschlangen Ivar spool sms Apache Webserver starten letc init d apache start stoppen letc init d apache stop Konfigurationsdatei lusr local
309. ute 0 59 Stunde 0 23 Tag 1 31 Monat 1 12 Wochentag 0 Sonntag 1 Montag usw Der erste Cron Job wird t glich jede Stunde zur 1 und 31 Minute ausgef hrt Der Zweite Cron Job wird t glich zu jeder 10 Minute ausgef hrt Solaris kann das so nicht Geben Sie 0 10 20 30 40 50 anstatt 10 ein Der dritte Cron Job wird jeden Montag um 01 05 Uhr ausgef hrt Der vierte Cronjob wird jeden Tag um 1 00 2 00 und 3 00 ausgef hrt Wie sie sehen steht das f r jede Minute Stunde Tag Monat oder Wochentag Ix bedeutet jede xte Minute Stunde Tag oder Monat Mehrere Zahlen k nnen durch Kommas getrennt angegeben werden Das Komma steht f r und Zahlenbereiche k nnen durch Minus Zeichen getrennt werden und bedeuten von bis Solaris versteht die Schreibweise x nicht Unter Windows schreibt das Programm nnCron Lite alle Bildschirmausgaben der Befehle in Logfiles Was jetzt kommt gilt nur f r Unix Unter Unix wird jeweils eine eMail an den User geschickt in der die Ausgaben der Programme erscheinen Die eMails k nnen Sie unterdr cken indem Sie die Ausgaben der Befehle in eine Datei umleiten x command gt var log logfile So werden normale Ausgaben in die Datei umgeleitet Achtung Das Verzeichnis var log ist nur f r root beschreibbar F r andere User m ssen Sie die Datei bereits vorher anlegen und Schreibrechte vergeben Wenn Sie die Ausgabe nach dev null umleiten werden diese ins Nirvana geschrie
310. viel kleiner Nat rlich k nnen Sie auch f r die anderen Netzbetreiber zwei Modems benutzen In diesem Beispiel wollte ich Ihnen lediglich demonstrieren dass man die Anzahl der Modems pro Netzbetreiber beliebig variieren kann Ins Ausland werden keine Kurzmitteilungen gesendet Wenn Sie das doch wollen dann f gen Sie einfach eine OTHER Queue hinzu und lassen Sie wenigstens ein Modem darauf zugreifen queues OTHER var spool sms OTHER provider OTHER 0 1 2 3 4 5 6 7 8 9 Seite 169 SMS Anwendungen Wenn smsd eine Nachricht findet die zu keinem Provider passt dann passt Sie aber auf jedenfall za OTHER und wird von dem Modem oder den Modems gesendet das dieser Warteschlange zugewiesen ist 5 2 3 Alle Konfigurationseinstellungen Nun da Sie die Grundlagen der Konfiguration kennengelernt haben k nnen Sie sich mit den anderen Einstellungen befassen Auf den folgenden Seiten erkl re ich Ihnen alle Einstellm glichen der Datei smsd conf Lesen Sie dieses Kapitel bitte aufmerksam durch denn hier verbergen sich viele n tzliche Einstellungen die Sie nicht verpassen sollten Die Konfigurationsdatei besteht aus vier Abschnitten Haupteinstellungen e Warteschlangen e Netzbetreiber Eine oder mehrere Modemeinstellungen Die Schreibweise der Datei entspricht den meisten Konfigurationsdateien unter Windows Abschnitte beginnen mit Abschnittname innerhalb der Abschnitte werden mehrere Variablen mit dem Gleichheitszeic
311. vom FTP Server herunter mput Dateiname l dt mehrere Dateien auf den FTP Server hoch Dateiname mit Jokerzeichen mget Dateiname l dt mehrere Dateien vom FTP Server herunter Dateiname mit Jokerzeichen prompt schaltet die Sicherheitsabfrage bei mput und mget aus bye Beendet die FTP Verbindung Das folgende Bildschirmfoto zeigt wie ich die Datei tmp test txt downloade is current directory 200 Port command okay 158 Opening ASCII NO PRINT mode data connection for ls 1l total 123 ruxruxrux 1 ftp ftp 6 Feb 14 14 26 test txt 226 Transfer finished successfully Data connection closed 75 Bytes empfangen in 8 88 Sekunden 75000 00 KB s Ftp gt get test txt 200 Port command okay 158 Sending C cygwin tmp test txt 6 bytes Mode STREAM Type ASCII NO PRINT 226 Transfer finished successfully Data connection closed 6 Bytes empfangen in 8 88 Sekunden 6809 88 KB s Ftp gt Seite 86 SMS Anwendungen 4 6 2 Automatische FTP Downloads Um Dateien automatisch zu bertragen verwenden Sie das Programmpaket ncftp Die dazu interessanten Befehle lauten ncftpput und ncftpget Unter Windows m ssen Sie ncftp in einer CygWin Bash Shell starten Downloaden Sie Dateien vom Server mit dem Befehl ncftpget u Username p Passwort Servername Zielverzeichnis Quelldateien Als Quelldateien k nnen Sie einzelne Dateien angeben z B tmp test txt oder auch Jokerzeichen benutzen Wenn Sie unter Unix Jokerzeichen benutzen m
312. ware installieren zu k nnen Geben Sie den Befehl grep initdefault etc inittab ein und notieren Sie sich die Zahl zwischen den beiden Doppelpunkten meistens eine 3 Dies ist der Runlevel der beim Booten aktiviert wird Sie werden sp ter einige Links in genau diesem Runlevel Verzeichnis anlegen m ssen damit die Programme mysql apache smstools automatisch beim booten gestartet werden In den folgenden Kapiteln werde ich immer davon ausgehen dass es sich um Runlevel 3 handelt Sie m ssen die Zahl in diesem Buch ggf entsprechend Ihrem System anpassen damit es funktioniert 4 2 3 2 SMS Server Tools Installieren Die SMS Server Tools und OssP mm Shared Memory Library brauchen Sie nur auf den Servern installieren wo die Modems angeschlossen werden Installieren Sie die OssP mm Shared Memory Library vorzugsweise von Ihren Linux Installations CD s Falls die Library nicht dabei ist dann installieren Sie stattdessen die Sourcen Downloaden Sie die libmm von http www ossp org pkg lib mm und die SMS Server Tools von Version 2 x http www meinemullemaus de smstools Version 3 x http smstools3 kekekasvi com Kopieren Sie die beiden Dateien libmm 1 4 0 tar gz und smstools x x x tar gz in das Verzeichnis usr local src cd usr local src tar xvzf libmm tar gz cd mm Iconfigure make make install ffnen Sie die Datei etc ld so conf und f gen sie das Verzeichnis usr local lib ein falls nicht vorhande
313. weiter Qualit t des Dienstes ist nicht verf gbar Versuche weiter Fehler im Endger t Fehler Prozedurfehler auf Gegenseite Fehler inkompatibles Ziel Fehler Verbindung wurde vom Endger t verweigert Fehler nicht ermittelbar Fehler Qualit t des Dienstes nicht verf gbar Fehler Keine Zusammenarbeit m glich Fehler G ltigkeitsdauer der SM abgelaufen Fehler Nachricht wurde vom Absender gel scht Fehler Nachricht wurde vom SMSC Administrator gel scht Fehler Die Nachricht existiert nicht Fehler berlast Fehler Endger t besch ftigt Fehler keine Antwort vom Endger t Fehler Dienst verweigert Fehler Qualit t des Dienstes nicht verf gbar Seite 186 SMS Anwendungen Fehler Fehler im Endger t Bei allen anderen Codes ist der Text unknown Manche Texte m gen unsinnig erscheinen doch dies ist eine w rtliche bersetzung der Text die die Spezifikation ETSI TS 100 900 vorschreibt Sie werden wohl am h ufigsten die Codes 0 und 70 sehen 5 6 7 Zeitstempel In den vorherigen Seiten haben Sie mehrfach Zeitstempel gesehen Diese haben immer folgendes Format YY MM DD HH MM ss YY ist die Jahreszahl MM ist der Monat DD ist der Tag HH ist die Stunde MM sind die Minuten ss sind die Sekunden Alle Zahlen sind immer Zweistellig Es kann vorkommen dass ein Zeitstemmpel nur lauter Nullen beinhaltet n mlich immer dann wenn di
314. welche Zeile das genau ist und dann den Statuscode in dieser Zeile zu erg nzen Wir brauchen nicht die ganze Tabelle manuell zu durchsuchen sondern befragen einfach MySQL welche Zeile die gesucht ist Kriterium ist dass die ID Nummer der gesendeten SM mit der ID Nummer im Statusbericht berein stimmen Also lautet der SQL Befehl select id from SQL_TABLE where receiver FROM and type SENT and msgid MSGID order by id desc limit 1 Auf deutsch Gib mir die ID aus der Tabelle sms_log wo der Empf nger mit dem Statusbericht berein stimmt und die Nachricht gesendet wurde und die Message ID Nummer mit dem Statusbericht berein stimmt Falls mehrere Zeilen in Frage kommen gib mir nur die letzte davon Verwechseln Sie jetzt bitte die ID Nummern nicht Dieser SQL Befehl fragt die ID Nummer der Tabellenzeile ab und vergleciht die ID Nummern der SM mit dem Statusreport Die ID Nummer der Tabellenreihe hat nichts mit der Message ID Nummer der SM zu tun Sie bezeichnet einfach nur die Reihennummer in der Tabelle Nachdem wir wissen welche Tabellenreihe die gesendete SM hat f r die wir den Statuscode erg nzen wollen k nnen wir den n chsten und letzten SQL Befehl absetzen Seite 198 SMS Anwendungen update SQL TABLE set received SDISCHARGE status SSTATUS where id ID Seite 199 SMS Anwendungen 6 Sinnvolle Erweiterungen Sie haben nun kenngelernt welche Programme Sie zum Versand und f r den Emp
315. wendung einer SQL Datenbank bringt im Vergleich zu einer selbst entwickelten Datenbank i y e meistens Vorteile MySQL ist schnell Sie k nnen mit Hilfe zahlreicher grafischen Programme z B Microsoft Access StarOffice MySQL Navigator auf die Daten zugreifen und sie ver ndern Nat rlich gibt es auch ein entsprechendes Programm f r die MS Dos Eingabeaufforderung bzw Unix Shell Dieser sogenannte SQL Client ist bereits im Lieferumfang von MySQL enthalten Mit Hilfe des SQL Clients k nnen Sie sogar aus einfachen Batch Dateien oder Shell Scripten heraus auf die Datenbank zugreifen Wenn Sie eine MySQL Datenbank einsetzen dann empfehle ich Ihnen als Nachschlagewerk das gedruckte deutsche Handbuch MySQL Das offizielle Handbuch ISBN 3 8266 0888 7 MySQL speichert wie alle SQL Datenbanken Ihre Daten in tabellarischer Form ab Sie k nnen beliebig viele Datenbanken anlegen die jeweils beliebig viele Tabelle speichern Jede Tabelle kann wiederum beliebig viele Reihen und Spalten haben Das Konzept ist hnlich wie in Microsoft Access nur dass bei SQL eine klare Trennung zwischen Datenbank Server und Datenbank Client besteht MySQL Datenbanken k nnen Sie in allen g ngigen Programmiersprachen benutzen In diesem Buch greifen wir mit Shell Scripten und PHP Scripten auf MySQL Datenbanken zu MySQL bietet kommerziellen Support sowie Schulungen an Sie bekommen MySQL kostenlos auf der Webseite http www mysql com Beachten Sie die Lizenzbestimm
316. yyyyy geben Sie bitte die PUK ein und anstelle von xxxx die neue gew nschte PIN Zur Info Die PUK ist ein l ngerer Sicherheitscode den Sie zusammen mit der SIM Karte auf Papier erhalten haben AT CSQ zeigt die Empfangsqualit t an Als Antwort zeigt das Modem zwei Zahlen an Die erste bezieht sich auf die Signalst rke des Empfangs und sollte immer zwischen 2 und 31 liegen O bedeutet dass kein Empfang m glich ist w hrend 31 den maximal zul ssigen Pegel darstellt Die zweite Zahl bezieht sich auf die Bit Fehlerrate Sie ist bei SMS Anwendungen nutzlos weil sie sich nur auf Verbindungen bezieht Aber zum Versand und Empfang von SMS bauen wir keine Verbindungen auf AT CREG zeigt an ob das Modem ins GSM Netz eingebucht ist Die Antwort 0 1 ist positiv Alle anderen Antworten zeigen an dass das Modem noch nicht eingebucht ist Solange das Modem nicht mit 0 1 antwortet k nnen Sie zwangsl ufig keine SMS bertragen Im n chsten Kapitel zeige ich Ihnen Befehle die Sie zum Senden und Empfangen von SMS brauchen Seite 37 SMS Anwendungen 4 1 3 SMS Modembefehle Nachdem Sie ein paar Befehle kennengelernt haben mit denen Sie das Modem initialisieren und pr fen ob es ins Netz eingebucht ist sollen Sie nun die Befehle zum Empfangen und Senden von SMS erfahren AT CMGF 0 sagt dem Modem dass alle SMS im PDU Format zum Computer bertragen werden Das Format beschreibe ich im n chsten Kapitel Alternativ gibt es noch das A
317. zah14 345e 3 Zeichenketten Zeichenketten m ssen Sie in einfache oder doppelte Anf hrungsstriche einschliessen Stextl Hallo das ist Stefan s Text Stext2 Der erste text war Stextl Seite 107 SMS Anwendungen Der Unterschied zwischen den beiden Versionen ist dass Sie innerhalb von doppelten Anf hrungsstrichen auch Variablen einf gen k nnen Bei einfachen Anf hrungsstrichen geht das nicht Wenn Sie im Text selbst Anf hrungsstriche schreiben wollen siehe erstes Beispiel m sen sie ein Backslash voranstellen weil PHP das Zeichen sonst als Zeichenketten Ende betrachten w rde Arrays Arrays sind Listen von mehreren Werten denen Schl ssel Indexe zugeordnet sind Beispiel Sname l Miriam Sname 2 Rolf Sname 3 Mucki Die Schl ssel d rfen auch O und negativ sein Sie d rfen ebenfalls Zeichenketten als Schl ssel verwenden SMutterVon Miriam Petra SMutterVon Rolf Heidi S SMutterVon Mucki Micki NULL NULL ist ein spezieller Wert f r Variablen denen noch kein Wert zugeordnet wurde oder deren Wert mit unset gel scht wurde Sie kennen das bereits von MySQL Wie Sie an den obigen Beispielen gesehen haben beginnen Variablennamen immer mit einem Dollarzeichen gefolgt von einem Buchstaben Nach dem ersten ersten Buchstaben d rfen Sie auch Ziffern verwenden Die gro Kleinschreibung ist wichtig Die TEST ist eine andere Variable als test und Test
318. zahl der SIM Karte an Sie k nnen die Geschwindigkeit des Programmes etwas erh hen indem Sie die PIN mit einem Handy deaktivieren und diese Einstellung dann weglassen denn dann braucht smsd nicht mehr zu pr fen ob die PIN bereits eingegeben wurde oder ob sie eingegeben werden muss Bei Handies entf llt diese Angabe sowieso denn dort m ssen Sie die PIN grunds tzlich ber die Tastatur des Handies eingeben mode Modus Nahezu alle GSM Modems werdem im Modus new betrieben was daher auch die Standardvorgabe ist Bei anderen Modems brauchen Sie diese Einstellung Falcom A1 oder andere sehr alte GSM Modems aus GSM Phase 1 Alle GSM Modems aus Phase 2 oder neuere F r Testzwecke Sie k nnen im Ascii Modus nur 140 Zeichen Text senden Das Programm kommuniziert im Klartext mit dem Modem anstatt Text und Rufnummern im PDU Format zu verschl sseln Manche Modems unterst tzen diesen Modus nich smsc Nummer Jedes GSM Modem und jedes Handy verwendet automatisch die SMS Zentrale die der Netzbetreiber vorgibt Diese Voreinstellung befindet sich auf der SIM Karte Sie k nnen auch jedes andere SMSC verwenden indem Sie dessen Rufnummer hier angeben Die Benutzung dieser Einstellung macht das Programm etwas langsamer weil es diese Nummer dem Modem extra mitteilen muss Schreiben Sie die Nummer im internationalen Format aber ohne das vorangestellte Plus Zeichen z B 491722270000 baudrate Zahl Mit dieser Zeile legen Sie d
319. zu tun MySQL hat sein eigene unabh ngige Passwortverwaltung Bei MySQL ist root der standardm ssige Name f r den Datenbank Administrator Nun kann man die Datenbank nur noch vom lokalen Rechner mit root Passwort benutzen Wie Sie weitere User anlegen erfahren Sie in einem sp teren Kapitel Seite 52 SMS Anwendungen 4 2 1 4 Apache and PHP compilieren Installieren Sie keine binary Pakete von Apache oder PHP von irgendwelchen Webseiten Sie funktionieren nicht korrekt zusammen Das ist auch bei SunFreeware so Sie m ssen die original Quelltexte downloaden und compilieren damit es funktioniert Besuchen Sie dazu die Webseiten http httpd apache org und www php net Packen Sie die Quelltexte von Apache aus und compilieren Sie diese lusr local bin tar xvzf httpd 2 2 2 tar gz cd httpd 2 2 2 Iconfigure prefix usr local apache2 enable mods shared all enable ssl shared enabe ssl 1 Wwith ssl usr local ssl enable proxy enable proxy connect enable proxy ftp enable proxy http make clean make make install Packen Sie die Quelltexte von PHP aus und compilieren Sie diese lusr local bin tar xvzf php 5 1 4 tar gz cd php 5 1 4 Iconfigure prefix usr local php with apxs2 usr local apache2 bin apxs with mysql usr local mysq l with libxml dir usr local with openssl usr local ssl make clean make make install Seite 53 SMS Anwendungen 4 2 1 5 Apache und PHP konfigurieren K

Download Pdf Manuals

image

Related Search

Related Contents

O2-Report 1-13 - Deutsche Selbsthilfegruppe für Sauerstoff  Recharge de la batterie ➌Configuration de l`Edge  Manual del Usuario - satonline systems  Monarch™ XX/RL/RT Service Manual  Sanny  - Philadelphia University  Product Sheet - Projector Central  

Copyright © All rights reserved.
Failed to retrieve file