Der eine oder andere hat eventuell schon »seine« Software für die Abfrage der Webcam
gefunden. Das Abspeichern der Bilder stellt wohl in den meisten Fällen ebenfalls kein Problem
dar. Aber: Wenn die Funktion des Uploads per FTP nicht das machen kann was man will oder gar
komplett fehlt – was nun?
Einen Lösungsvorschlag hätte ich zu bieten: PHP, Apache und wget vorausgesetzt.
PHP
ist eine Scriptsprache mit der hauptsächlich dynamische Internetseiten
generiert werden. Apache
als Webserver sollte eigentlich auch jedem ein Begriff
sein. Bleibt nur noch wget
, bei dem es sich um ein Tool handelt mit dem man unter
anderem Downloads an der Kommandozeile vornehmen kann.
Der Ablauf des Uploads wird folgender sein: Der lokal installierte Apache hat die Erweiterung
für PHP integriert. Somit können PHP-Scripte aufgerufen und ausgeführt werden. Bestandteil
von PHP sind sehr einfach zu bedienende FTP-Funktionen. Diese Kombination soll für den Upload
verwendet werden.
Irgendwie muß aber das PHP-Script aufgerufen werden. Natürlich könnte man es auch lokal am
Rechner mittels weiteren Scripten lösen, aber meine Lösung halte ich für deutlich einfacher
und zuverlässig denn hier kommt wget
zusammen mit der crontab
ins
Spiel.
Das fertige PHP-Script wird einfach mittels einem Aufruf in der /etc/crontab
aufgerufen. Es führt den FTP-Upload durch und das war's auch schon. Nun das PHP-Script
und der Aufruf in der /etc/crontab
:
<? $conn_ftp = ftp_connect("domain",21); $ftp = ftp_login($conn_ftp,"username","password" if($ftp) echo "Sie sind eingeloggt"; else echo "Zugangsdaten stimmen nicht!"; echo ftp_chdir($conn_ftp,"webcam"
." - "; $datei="ov511.jpg"; $lokal="/home/webcam/ov511.jpg"; $file = fopen($lokal,"r"
; if(@ftp_fput($conn_ftp,$datei,$file,FTP_BINARY)) echo "Upload komplett."; else echo "Fehler beim Upload."; fclose($file); ftp_quit($conn_ftp); ?>
Die kursiv geschriebenen Angaben müssen durch die eigenen ersetzt werden. Natürlich ist
ein kleines Sicherheitsrisiko vorhanden: Das FTP-Passwort muß im Klartext angegeben werden.
Allerdings wäre dies auch bei anderen Varianten, beispielsweise dem Upload mittels einer
Cam-Software der Fall.
Die im Script angegebenen echo-Aufrufe dienten eigentlich nur während dem Testen des Scripts
zu Kontrollausgaben.
0-59/5 * * * * root /usr/bin/wget -q http://127.0.0.1/upload.php > /dev/null
Der Eintrag bewirkt, dass alle fünf Minuten das PHP-Script aufgerufen wird. Der Schalter
-q
von wget
läßt wget keine Meldung ausgeben (würde sonst per Mail an root
gehen), die Umleitung nach /dev/null
schiebt den Download ins Datennirvana.