HTTP-Zugriffe per Crontab auslösen
Moderator: Lancom-Systems Moderatoren
HTTP-Zugriffe per Crontab auslösen
Hallo,
um neben dem verwendeten dyndns-Dienst mehr Kontrolle über den Online-Status eines Routers zu erhalten, würde ich gerne ähnlich der Befehle in der Aktionstabelle in der Crontab http-Zugriffe eintragen. Diese sollen in einem Intervall (alle paar Minuten) ein Script auf einem externen Webserver aufrufen, welches die Zugriffe mit Datumsstempel und Remote IP in ein Log schreibt.
Die Frage wäre, wie/ob man mit einem Befehl diese http-Zugriffe ausführen könnte. In der Aktionstabelle ist ja einfach nur eine URL eingetragen -- geht das in der crontab (wo ja Kommandozeilenbefehle eingetragen werden) auch? Es braucht einfach nur eine statische URL zu sein, ohne Variablenübergabe.
Gruß,
omd
um neben dem verwendeten dyndns-Dienst mehr Kontrolle über den Online-Status eines Routers zu erhalten, würde ich gerne ähnlich der Befehle in der Aktionstabelle in der Crontab http-Zugriffe eintragen. Diese sollen in einem Intervall (alle paar Minuten) ein Script auf einem externen Webserver aufrufen, welches die Zugriffe mit Datumsstempel und Remote IP in ein Log schreibt.
Die Frage wäre, wie/ob man mit einem Befehl diese http-Zugriffe ausführen könnte. In der Aktionstabelle ist ja einfach nur eine URL eingetragen -- geht das in der crontab (wo ja Kommandozeilenbefehle eingetragen werden) auch? Es braucht einfach nur eine statische URL zu sein, ohne Variablenübergabe.
Gruß,
omd
LC 1811 / LCOS 5.08
Hi,
Ciao
LoUiS
nein, das ist nicht moeglich, in der CRON-Tab koennen nur Befehle ausgefuehrt werden, die auch ueber die Telnet/SSH Console ausgefuehrt werden koennen.Die Frage wäre, wie/ob man mit einem Befehl diese http-Zugriffe ausführen könnte. In der Aktionstabelle ist ja einfach nur eine URL eingetragen -- geht das in der crontab (wo ja Kommandozeilenbefehle eingetragen werden) auch? Es braucht einfach nur eine statische URL zu sein, ohne Variablenübergabe.
Ciao
LoUiS
Dr.House hat geschrieben:Dr. House: Du bist geheilt. Steh auf und wandle.
Patient: Sind Sie geisteskrank?
Dr. House: In der Bibel sagen die Leute schlicht "Ja, Herr" und verfallen dann ins Lobpreisen.
Moin,
doch, das sollte gehen - die Einträge in der Cron-Tabelle werden vom gleichen
Modul wie Einträge in der Aktionstabelle ausgeführt. Der einzige Unterschied
ist, daß man bei Einträgen in der Cron-Tabelle das 'exec:' nicht davorschreiben
muß. Ein
Gruß Alfred
doch, das sollte gehen - die Einträge in der Cron-Tabelle werden vom gleichen
Modul wie Einträge in der Aktionstabelle ausgeführt. Der einzige Unterschied
ist, daß man bei Einträgen in der Cron-Tabelle das 'exec:' nicht davorschreiben
muß. Ein
geht also durchaus als Eintrag in der Cron-Tabelle - genauso wie 'mailto:'
Gruß Alfred
Moin Alfred,
oh, das wusste ich nicht. Dann nehme ich alles zurueck und behaupte prompt das Gegenteil.
Danke, man lernt nie aus.
Ciao
LoUiS
oh, das wusste ich nicht. Dann nehme ich alles zurueck und behaupte prompt das Gegenteil.
Danke, man lernt nie aus.

Ciao
LoUiS
Dr.House hat geschrieben:Dr. House: Du bist geheilt. Steh auf und wandle.
Patient: Sind Sie geisteskrank?
Dr. House: In der Bibel sagen die Leute schlicht "Ja, Herr" und verfallen dann ins Lobpreisen.
Hi,
das ist sicher auch fuer andere interessant, wie waers mit dem Script und dem Eintrag in der CRON fuer die FAQ Section?
Ciao
LoUiS
das ist sicher auch fuer andere interessant, wie waers mit dem Script und dem Eintrag in der CRON fuer die FAQ Section?
Ciao
LoUiS
Dr.House hat geschrieben:Dr. House: Du bist geheilt. Steh auf und wandle.
Patient: Sind Sie geisteskrank?
Dr. House: In der Bibel sagen die Leute schlicht "Ja, Herr" und verfallen dann ins Lobpreisen.
Hallo. Hier kommt ein entsprechender Beitrag.LoUiS hat geschrieben:Hi,
das ist sicher auch fuer andere interessant, wie waers mit dem Script und dem Eintrag in der CRON fuer die FAQ Section?
Ciao
LoUiS
Dynamische IP auf einem externen Webserver protokollieren
Da LANCOM-Router eine Möglichkeit zum Anstoßen von http-get-Requests mitbringen, läßt sich damit recht einfach ein Logfile auf einem Webserver-Konto führen. Dies ist hilfreich, um IPs bei dynamischer Adressvergabe festzuhalten.
Zwei Varianten sind möglich: zeitgesteuerte Protokollierung und ereignisbasierte Protokollierung
I) Zeitgesteuert
In einem vorgegebenen Intervall (z.B. alle 15 Minuten) wird das Protokollscript auf dem Webserver aufgerufen und so auf dem Webserver ein Protokolleintrag erzeugt, der den Zugriffszeitpunkt und die dabei verwendete IP enthält.
Ein Eintrag wird routerseitig in der Cron-Tabelle erstellt ( LANconfig / Datum/Zeit / Cron-Tabelle ... / Hinzufuegen ... ):
- Eintrag aktiv: ja

- Echtzeit: ja
- Minuten: /15 (d.h. alle 15 Minuten, bzw. je nach Wunsch)
- Felder Stunden bis Monate bleiben leer, jedenfalls sofern das Abfrageintervall kleiner als 1h sein soll
- Befehle: http://www.webserver0815.de/meinverzeic ... script.php (bspw.)
Wesentlich ist die "Befehle"-Zeile. Dies ist die URL des Scriptes, welches regelmäßig per http aufgerufen wird. Der genaue Aufruf ist abhängig von der Implementierung eines solchen Scripts, und natürlich vom Webserver, auf dem es liegt.
(Anmerkung: Die Möglichkeit der Verwendung einer http-Adresse als Befehl in der Cron-Tabelle ist nicht dokumentiert und könnte sich ggf ändern.)
II) Ereignisbasiert
Das Protokollscript kann auch genau dann aufgerufen werden, wenn eine neue Internetverbindung aufgebaut wurde (und somit der Router eine neue IP erhalten hat).
Ein Eintrag wird routerseitig in der Aktions-Tabelle erstellt ( LANconfig / Kommunikation / Aktions-Tabelle ... / Hinzufuegen ... ):
- Name: frei wählbar, z.B. IP-PROTOKOLLIERUNG
- Gegenstelle: die konfigurierte InternetVerbindung
- Sperrzeit: 0
- Verbindungs-Ereignis: Aufbau
- Aktion: entspricht dem "Befehle"-Eintrag in der Cron-Tabelle, s.o.
- Ergebnis-Auswertung: (nichts, hier wird nichts ausgewertet)
Zeit- oder ereignisgesteuerte Protokollierung?
Beide Varianten haben Vorzüge. Mit der Cron-Tabellen-Methode werden kontinuierlich Einträge in die Protokolldatei geschrieben. D.h. im Falle des Ausfalls der Internetanbindung ist ersichtlich, in welchem Zeitraum keine Internetverbindung bestand. Die Aktions-Tabelle hingegen aktualisiert die IP genau dann, wenn diese sich ändert. Damit ist im Protokoll stets die aktuelle IP ersichtlich.
Um beide Vorzüge zu nutzen, lassen sich Einträge in Aktionstabelle und Crontabelle kombinieren.
Wie sieht ein auf dem Webserver zu hinterlegendes Protokollierungsscript aus?
Die Funktion ist überschaubar: Bei jedem Zugriff wird an eine Protokolldatei (Textdatei) eine Zeile angehängt, die den Zugriffszeitpunkt und die IP des Routers enthält. Die Router-IP (bzw. die IP des Script-Aufrufers) kann das Script vom Webserver abfragen - der Router braucht sie nicht gezielt übergeben.
In PHP erfüllen folgende Zeilen (o.ä.) diese Aufgabe:
Code: Alles auswählen
<?php
$logdatei = 'accesslog.txt';
$zeitstempel = date('r');
$remote_ip = $_SERVER['REMOTE_ADDR'];
$eintrag = "$zeitstempel\t$remote_ip\n";
$file = fopen($logdatei, 'a');
if ($file==FALSE) {
die('Fehler beim Oeffnen der Logdatei ' . $logdatei);
}
$schreibstatus = fwrite($file, $eintrag);
if ($schreibstatus==FALSE) {
die('Fehler beim Schreiben in die Logdatei ' . $logdatei);
}
fclose($file);
?>
Code: Alles auswählen
Sun, 09 Oct 2005 22:13:19 +0200 84.174.128.126
Sun, 09 Oct 2005 22:14:03 +0200 84.174.128.126
Sun, 09 Oct 2005 22:14:06 +0200 84.174.128.126
iplog.php
Es sei auf eine etwas verspieltere Variante des Protokollierungsscripts (iplog.php) hingewiesen. Sie unterstützt anhand einer beim Aufruf übergebenen ID (je Gerät oder Ereignis) das Führen mehrerer Protokolle und bietet darüber sowie über die jeweils letzten IPs eine Übersicht:
http://omd.om.funpic.de/ (Demo zum Anclicken und Ausprobieren sowie Download)
Protokollierung von VPN-Verbindungen
Noch ein Hinweis: Da VPN-Verbindungen auf dem LANCOM-Router wie Internetverbindungen eine "Gegenstelle" darstellen, läßt sich auch hier ereignisbasiert über die Aktions-Tabelle protokollieren. In Verbindung mit oben genanntem iplog.php-Script und jeweils einer eigenen ID je VPN-Gegenstelle (z.B. "lancom1-vpnclient1-connect") läßt sich so ein rudimentäres Protokoll über den Verbindungsaufbau mit Gegenstellen/Clients führen.[/b]
LC 1811 / LCOS 5.08
Hi OMD,
das macht nichts, ist klasse geworden, vielen Dank! Ich habe dazu einen neuen Eintrag in der FAQ Section gemacht.
Ciao
LoUiS
das macht nichts, ist klasse geworden, vielen Dank! Ich habe dazu einen neuen Eintrag in der FAQ Section gemacht.
Ciao
LoUiS
Dr.House hat geschrieben:Dr. House: Du bist geheilt. Steh auf und wandle.
Patient: Sind Sie geisteskrank?
Dr. House: In der Bibel sagen die Leute schlicht "Ja, Herr" und verfallen dann ins Lobpreisen.