Aufgabe in crontab wird nicht ausgeführt

  • Hallo,

    mit dem Befehl

    Code
    influxd backup -portable -database solaranzeige /backup/Solar/Datenbank

    kann ich im Terminal als User pi die Influx-Datenbank auf meine Synology sichern. Die Dateien werden auch tatsächlich angelegt.

    Wenn der Befehl aber in der crontab steht

    dann wird er nicht ausgeführt (ja, eine Leerzeile am Ende der Datei ist vorhanden). Hat jemand eine Idee. woran es liegen könnte?

    Beste Grüße
    Jürgen

  • Benutze bitte mal den kompletten Pfad zu "influxd", auch wenn $PATH gesetzt wurde.

    type influxd verrät ihn dir.

    journalctl -u crond.service --since today um die Logs auf Ausführung zu prüfen.

    Wenn du nichts zu sagen hast, sag einfach nichts.

  • O. k., die geänderte Zeile in der crontab ist nun

    Code
    # Backup der InfluxDB von Solaranzeige
    30 * * * *      pi      /usr/bin/influxd backup -portable -database solaranzeige /backup/Solar/Datenbank

    Im Log steht nichts drin:

    Code
    -- Journal begins at Mon 2022-08-22 17:58:04 CEST, ends at Mon 2022-09-26 21:33:02 CEST. --
    -- No entries --

    Wenn ich das richtig verstehe, dann hätte um 21:30 ein Eintrag kommen müssen. Mir scheint, die crontab wird gar nicht ausgeführt; wenigstens hätten doch die anderen Einträge (Zeile 17-20 im ersten Post) Einträge erzeugen müssen.

    Beste Grüße
    Jürgen

  • Läuft cron denn überhaupt` systemctl status cron.service

    Wenn ja, lösche mal den Eintrag aus /etc/crontab und lege eine neue Datei "/etc/cron.d/influxd_backup" an.

    Inhalt:

    Code: /etc/cron.d/influxd_backup
    # Backup der InfluxDB von Solaranzeige
    30 * * * * pi /usr/bin/influxd backup -portable -database solaranzeige /backup/Solar/Datenbank
    # TEST
    */2 * * * pi /usr/bin/date >>/tmp/crontest.txt

    Anschliessend mal nachsehen, ob nach ca 2 Minuten die Datei /tmp/crontest.txt erstellt wurde. Dann funktioniert zumindest cron.

    Alternativ als User pi crontab -e und den Job (ohne das Feld "user") hinzufügen.

    Wenn du nichts zu sagen hast, sag einfach nichts.

    Einmal editiert, zuletzt von llutz (26. September 2022 um 21:52)

  • In der Doku ( https://docs.influxdata.com/influxdb/v1.8/…backup-examples ) die ich gefunden habe steht statt -database nur -db. Eine Liste aller Optionen habe ich aber jetzt am Telefon nicht gesucht.

    Keine Ahnung ob es in dem Fall einen Unterschied zwischen Dash in Cron und Bash im Terminal gibt, aber ich würde das ganze trotzdem mal in ein Bash-Skript stecken, das ausführbar machen und dieses per Cronjob aufrufen.

  • O. k., die geänderte Zeile in der crontab ist nun

    Code
    # Backup der InfluxDB von Solaranzeige
    30 * * * *      pi      /usr/bin/influxd backup -portable -database solaranzeige /backup/Solar/Datenbank

    Im Log steht nichts drin:

    Code
    -- Journal begins at Mon 2022-08-22 17:58:04 CEST, ends at Mon 2022-09-26 21:33:02 CEST. --
    -- No entries --

    Wenn ich das richtig verstehe, dann hätte um 21:30 ein Eintrag kommen müssen. Mir scheint, die crontab wird gar nicht ausgeführt; wenigstens hätten doch die anderen Einträge (Zeile 17-20 im ersten Post) Einträge erzeugen müssen.

    Wieso eigentlich um 21:30? Bei diesem Eintrag 30 * * * * muss der Job stündlich, immer 30 Minuten nach der vollen Stunde, ausgeführt werden.

    Oder sollte das heißen, er hätte um 21:30 das erste Mal laufen müssen, weil Du den Eintrag nach 20:30 eingefügt hast? :conf:

    Dan passt aber die Uhrzeit des Journals nicht, demnach hätte der Job schon früher laufen müssen.

    Gruss

  • 30 * * * * pi influxd backup -portable -database solaranzeige /backup/Solar/Datenbank

    Und wie immer:

    Man packt solches in ein Skript, welches ausführbar ist und welches vorher getestet wurde.

    In dem Skript wird die Umgebung, in der es sauber ausgeführt werden kann (Pfad zu dem Programmen, benötigte Variablen und so weiter) gesetzt.

    Jetzt kann man nicht nur einmal dieses Skript ohne Crontab testen, man hat, wenn man dann nur dieses Skript in die crontab einträgt, auch die Sicherheit, das man in der Ausführungsumgebung nichts vergessen hatte.

    Außerdem schreibt man sowohl die Standardausgabe als auch die Fehlerausgabe des Crontab-Aufrufs in eine eigene Datei. (Dabei sollte man diese beiden Dateien bei jedem Aufruf überschreiben, um den Plattenplatz zu reduzieren. auf dem PI sollten diese Dateien in einer Ram-Disk liegen)

    Computer ..... grrrrrr

  • llutz : cron läuft

    ich habe die fragliche Zeile in der Crontab vom User pi crontab -e eingetragen; dann wird sie auch ausgeführt. Aber warum? :denker:

    FSC830: Ja, 21:30 wäre der nächste Zeitpunkt nach Erstellen des Eintrags in der crontab gewesen.

    Rasp-Berlin : Ich bin dem Tipp gefolgt und habe ein Skript erstellt

    Bash
    #!/bin/bash
    # Sichert die Influx Datenbank auf RS819 
    influxd backup -portable -database solaranzeige /backup/Solar/Datenbank

    Nach Eintrag in der crontab wird das jetzt auch ausgeführt

    Für den Test habe ich jetzt alle 5 Minuten laufen lassen, das wird noch geändert.

    Fazit: ich verstehe es nicht wirklich, warum das so ist, aber ich merke mir einfach, dass die Variante "Skript & Aufruf" in crontab offenbar besser funktioniert. (Mit der Wissenslücke kann ich leben ;) )

    Beste Grüße
    Jürgen

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!