Werbehinweise

Startseite » Software » Linux » Webcam ans Web bringen #2 

Werbung

Webcam ans Web bringen #2

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, Apache und wget?

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:

PHP-Script

<?
$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.

/etc/crontab-Eintrag

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.

Datenschutzerklärung
Durch die Nutzung der Website stimmen Sie der Verwendung von Cookies zur Durch­führung von Analysen und zum Erstellen von Inhalten und Werbung, welche an Ihre Interessen angepasst ist, zu.