kostenloser Webspace werbefrei: lima-city


Raspbian Crontab

lima-cityForumHeim-PCBetriebssysteme

  1. Autor dieses Themas

    marvinkleinmusic

    Kostenloser Webspace von marvinkleinmusic

    marvinkleinmusic hat kostenlosen Webspace.

    Hallo zusammen,

    ich habe mal eine Frage zum Crontab in Raspbian. Ich musste leider aufgrund eines Softwarefehlers meinen Pi zurücksetzten.

    Der Pi hat alle 30 Minuten eine lokale Adresse aufgerufen, welcher ein PHP-Script ausführen soll.

    Der ursprüngliche Befehl (hatte zuvor funktioniert) lautet:
    30 * * * * curl http://192.168.178.2/external_ip.php

    wenn ich
    curl http://192.168.178.2/external_ip.php

    im Terminal manuell eingebe, dann geschieht auch alles wie es soll. Ich weiß aber nicht, wieso das ganze nicht mehr als Cronjob ausgeführt wird.

    Ich habe das ganze jetzt in mehrere Variationen durchgetestet.
    Schritt 1: sudo crontab -e

    Schritt 2: Am Ende der Datei:
    habe ich folgendes alles ausprobiert:
    30 * * * * curl http://192.168.178.2/external_ip.php
    30 * * * * root curl http://192.168.178.2/external_ip.php
    @hourly curl http://192.168.178.2/external_ip.php
    @hourly /usr/bin/curl http://192.168.178.2/external_ip.php

    Schritt 3: sudo service cron restart

    Ein Blick ins Log sagt mir, dass der Cronjob zumindest als User Pi ausgeführt wurde:
    Sep 10 11:07:53 raspberrypi cron[352]: (CRON) INFO (pidfile fd = 3)
    Sep 10 11:07:53 raspberrypi cron[352]: (CRON) INFO (Running @reboot jobs)
    Sep 10 11:09:09 raspberrypi CRON[1390]: (root) CMD ( [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
    Sep 10 11:10:11 raspberrypi cron[344]: (CRON) INFO (pidfile fd = 3)
    Sep 10 11:10:11 raspberrypi cron[344]: (CRON) INFO (Running @reboot jobs)
    Sep 10 11:12:56 raspberrypi cron[1519]: (CRON) INFO (pidfile fd = 3)
    Sep 10 11:12:56 raspberrypi cron[1519]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
    Sep 10 11:15:51 raspberrypi cron[1578]: (CRON) INFO (pidfile fd = 3)
    Sep 10 11:15:51 raspberrypi cron[1578]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
    Sep 10 11:17:01 raspberrypi CRON[1586]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
    Sep 10 11:18:36 raspberrypi cron[1663]: (CRON) INFO (pidfile fd = 3)
    Sep 10 11:18:36 raspberrypi cron[1663]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
    Sep 10 11:20:42 raspberrypi cron[1759]: (CRON) INFO (pidfile fd = 3)
    Sep 10 11:20:42 raspberrypi cron[1759]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
    Sep 10 11:23:02 raspberrypi cron[1844]: (CRON) INFO (pidfile fd = 3)
    Sep 10 11:23:02 raspberrypi cron[1844]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
    Sep 10 11:26:59 raspberrypi cron[1901]: (CRON) INFO (pidfile fd = 3)
    Sep 10 11:26:59 raspberrypi cron[1901]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
    Sep 10 11:30:01 raspberrypi CRON[1935]: (pi) CMD (pi curl http://192.168.178.2/external_ip.php)
    Sep 10 11:30:01 raspberrypi CRON[1931]: (CRON) info (No MTA installed, discarding output)

    Was mir schon helfen würde, wäre eine Option um einen Cronjob manuell auszuführen.

    Hat vielleicht Jemand von euch eine Idee?

    LG Marvin

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. h***********r

    Bei Owncloud in der Doku wird der Cron so eingerichtet, evtl erkennt man daran wie es funktioniert :)
    # crontab -u www-data -e
    */15  *  *  *  * php -f /var/www/owncloud/cron.php

    Bei Crons mit curl meinte ich in Erinnerung zu haben das man das die URL in " setzen muss.

    Beitrag zuletzt geändert: 10.9.2019 13:25:15 von horstexplorer
  4. Autor dieses Themas

    marvinkleinmusic

    Kostenloser Webspace von marvinkleinmusic

    marvinkleinmusic hat kostenlosen Webspace.

    Hallo horstexplorer,

    danke für deine rasche Antwort.

    Die Syntax ist ja genauso wie bei mir, nur dass du php mit Parameter startest.

    Ich weiß auch nicht wieso, aber nach dem 5ten Neustart scheint er jetzt mit folgender Lösung zufrieden zu sein:
    @hourly /usr/bin/curl http://192.168.178.2/external_ip.php

    Kennst du denn noch zufällig den Befehl, um einen Cronjob manuell auszuführen?

    Liebe Grüße

    Beitrag zuletzt geändert: 10.9.2019 14:02:38 von marvinkleinmusic
  5. h***********r

    Ich habe gerade nochmal nachgesehen. meine curl crons laufen mit
    curl -k "https://domain.tld/site.php"

    -k weil es bei mir das Zertifikat nicht mag und die URL in ", sonst läufts ned.

    Zum selbst ausführen wüsste ich jetzt nicht sicher wie das geht.
  6. marvinkleinmusic schrieb:
    Der Pi hat alle 30 Minuten eine lokale Adresse aufgerufen, welcher ein PHP-Script ausführen soll.
    Der ursprüngliche Befehl (hatte zuvor funktioniert) lautet:
    30 * * * * curl http://192.168.178.2/external_ip.php
    Das ist so ja erstmal schon nicht richtig. So (sollte) das ganze jede Stunde auf der dreißigsten Minute ausgeführt werden.(Also um 00:30, 01:30, 02:30 [...]) Wenn du es wirklich jede halbe Stunde(also 00:00, 00:30, 01:00, 01:30 [...]) ausgeführt haben willst, sollte
    */30 * * * pi /usr/bin/curl --silent "http://192.168.178.2/external_ip.php"
    die richtige Aufforderung sein, sofern es da keine Einschränkungen in Sachen curl-/Netzwerk-Nutzung gibt.(
    iptables
    ?) Was du nicht willst, ist curl als root aufrufen - das ist ein erhebliches Sicherheitsrisiko.(Ich weiß, in dem Fall ist es wahrscheinlich "relativ" sicher, aber man sollte es aus Prinzip schon richtig machen.) Richte dir einen Nutzer ein - oder verwende einen bereits existierenden -, der so weit beschränkt ist, dass es grade so funktioniert und trage ihn oben anstelle von
    pi
    ein. Ich habe pi gewählt, weil das bei mir relativ problemlos funktioniert - ist aber systemabhängig.

    marvinkleinmusic schrieb:
    Was mir schon helfen würde, wäre eine Option um einen Cronjob manuell auszuführen.
    Ich fürchte, die Option gibt es nicht. Ich wüsste zumindest nichts davon. Man könnte alternativen basteln, welche aber letztenendes nur darauf hinaus laufen, dass man den Befehl manuell heraus sucht und dann startet.
    Zum debuggen lohnt es sich immer, die Ausgabe des Befehls in ein Log zu pipen (über ein angefügtes
    >> /path/to/temp.log 2>&1
    ) und/oder die Befehle mit Debug-Informationen in ein Bash-Skript zu verpacken, welches dann von crontab aufgerufen wird.(Natürlich sollte man da die Option
    --siltent
    aus curl weg lassen.)
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!