|
Raspi sendet nach Zeitplan Anfragen an einen Server
Letztens fragte mich jemand, wie man mittels Raspaspberry Pi einem
Server Anfragen stellen kann.
Und dies alle zehn Minuten oder vielleicht auch jede Minute.
Derjenige wollte damit regelmäßig eine IP-Adresse in einer
Datenbank speichern.
Das ist relativ leicht.
In Linux läuft im Hintergrund ein Programm, das automatisch zu
bestimmten Zeiten Anweisungen ausführt.
Es heißt cronjob und arbeitet zusammen mit der Tabelle crontab
(griechisch "cronos": die Zeit).
In dieser Tabelle kann man eintragen, wann etwas automatisch
ausgeführt werden soll.
Welche Anfrage könnte man an einen Server stellen?
Man könnte den Server "anpingen".
Probieren wir das gleich einmal aus!
Öffne Dein Terminal und gib ein: ping google.de
(oder die IP-Adresse eines beliebigen Computers, der für Dich über
Netzwerk erreichbar ist).
Als Reaktion auf Deine Anfrage sendet Dir Google ein Ping zurück
und es wird die Zeit ausgegeben, die dafür benötigt wurde sowie
die IP-Adresse des angepingten Google-Servers. Dies geht ewig so
weiter. Abbrechen kannst Du das Gepinge mit der
Tastenkombination: Strg + C.
Wenn Du nur ein Ping hinsenden willst, gib ein: ping -c 1
google.de
Wie kann man das mittels eines cronjobs erledigen lassen?
Zum Editieren der crontab gib ein: crontab -e
Worauf sich er voreigestelle Editor (wahrscheinlich "nano")
öffnet.
In der letzten Zeile kannst Du
eingeben: * * * *
* /bin/ping -c 1 192.168.178.50
... um jede Minute dem Rechner mit der IP 192.168.178.50 einen
Ping zu senden.
5 Sternchen bedeuten: jede Minute. Zwischen jedem Stern
befindet sich ein Leerzeichen.
Im Editor nano kann man speichern mit der Tastenkombination Strg
+ O und verlassen kann man ihn mit Strg + X.
Die 5 Sternchen stehen für: Minute
(0...59) | Stunde (0..23) | Tag im Monat
(0...31) | Kalendermonat (1..12) |
Wochentag (1...7)
Willst Du jede Stunde einen Ping senden, sähe der Befehl so aus: 0
* * * * /bin/ping -c 1 192.168.178.50
Willst Du jeden Tag um 0.30h einen Ping senden, sähe der Befehl so
aus: 30 0 * * * /bin/ping -c 1 192.168.178.50
Willst Du alle 10min einen Ping senden, sähe der Befehl so aus: */10
* * * * /bin/ping -c 1 192.168.178.50
|