Frage von Olaula, 60

Kann mir jemand sagen wie ich eine URL per Cronjob jede Minute aufrufen lassen kann?

Ich möchte eine URL zum Update meiner IP-Adresse für einen Dyndns-Anbieter 1x pro Minute aufrufen

Verwendetes Betriebssystem ist Raspbian Jessie

Der Zugriff erfolgt per SSH

Angemeldeter User: root

Crontab angelegt/aufgerufen mit: sudo nano /etc/crontab

Folgenden Crontab habe ich probiert, die URL wird aber nicht aufgerufen:

/1 * * * * /usr/bin/wget -q "http://www.dyndns-anbieter.de/?user=meinusername&pass=meinpasswort&updat..."*

Kann mir jemand sagen was ich falsch gemacht habe, bzw wie der richtige Befehl aussehen muss?

Für einen Tipp wäre ich sehr dankbar.

Vielen Dank und viele Grüße

olaula

Antwort
von Linuxhase, 33

Hallo

Ich möchte eine URL zum Update meiner IP-Adresse für einen Dyndns-Anbieter 1x pro Minute aufrufen

Wieso den so oft, normalerweise ändert sich die IP-Adresse doch nur einmal in 24 Stunden?

Folgenden Crontab habe ich probiert, die URL wird aber nicht aufgerufen:

Was gibt es denn für eine Fehlermeldung oder was genau passiert denn?

Ich würde das wget-Kommando ja in ein Script schreiben und dieses ausführen lassen:

1 * * * * /pfad/zum/script/scriptname.sh
  • Hast Du das Kommando denn mal ohne Cronjob versucht, stimmt hier alles?
  • Ist das Script denn auch ausführbar bzw. welcher Benutzer ruft denn das Kommando auf, hat dieser Berechtigung?

Ob die Webseite das überhaupt so mitmacht weiß man ja auch nicht.

Linuxhase

Antwort
von franzhartwig, 24

Es ist keine gute Idee, die Crontab mit

sudo nano /etc/crontab

zu editieren. Erstens ist das sudo überflüssig, weil Du als root angemeldet bist. Zweitens ist das der falsche Weg.

crontab -e

ist der richtige Weg. Die Crontab muss mit einer Leerzeile abschließen. Ich frage mich auch, warum das als root passieren muss. Es reicht doch, das als "normaler" User zu machen. Also anmelden als pi und dann crontab -e.

In der Befehlszeile selbst sehe ich jetzt erst mal keinen Fehler.

die URL wird aber nicht aufgerufen:

Die Frage ist vor allem, ob der Cronjob aufgerufen wird und wenn nicht, warum nicht. Gibt es einen Logfile für Cron unter /var/log? Da würde ich mal reinschauen. Funktioniert der Befehl, wenn Du ihn direkt in die Kommandozeile eingibst?

Kommentar von guenterhalt ,

Es ist keine gute Idee, die Crontab mit

sudo nano /etc/crontab

zu editieren.

Was habe ich da seit 30 Jahren falsch gemacht? (da gab es zwar noch kein nano, der editor nannte sich screen) Und warum hat das so lange funktioniert, wenn es keine gute Idee ist?

Der Befehl crontab -e zwingt den Benutzer sich vorher mit vi zu beschäftigen (Grundwissen über vi ist immer von Vorteil).
Wer aber nicht über dieses Wissen verfügt, kann mit der Seite voller Tilden erst einmal wenig anfangen.
Ist dass wirklich eine gute Idee?

Das mit sudo als root ist natürlich richtig. Wer so etwas macht, der hat vergessen, dass es zwischen Ubuntu und Linux Unterschiede gibt.

Kommentar von franzhartwig ,

Der Befehl crontab -e zwingt den Benutzer sich vorher mit vi zu beschäftigen (Grundwissen über vi ist immer von Vorteil).

Dann nimm doch

EDITOR=nano crontab -e

Übrigens landet bei mir crontab -e immer im nano, ohne dass ich etwas geändert hätte. Möglicherweise ist das per Default durch update-alternatives festgelegt:

update-alternatives --set editor /bin/nano

Aber Du hast Recht, ich war auf der falschen Baustelle. Natürlich kann man die Crontab direkt editieren. crontab -e hat lediglich den Vorteil, eine Syntax-Kontrolle zu machen.

Keine passende Antwort gefunden?

Fragen Sie die Community