crontab Änderung ist nach einem Neustart wieder weg, was tun?

  • Hallo Leute,


    Ich versuche schon seit einiger Zeit, in der crontab /mnt/HDA_ROOT/.config/crontab eine zusätzliche Zeile einzufügen, um ein Script ausführen zu lassen.

    Das Hinzufügen meines crontabs funktioniert, auch nach dem Befehl crontab /etc/config/crontab und Restart des Dienstes /etc/init.d/crond.sh restart sehe ich meinen Eintrag.


    Allerdings ist der nach einem Reboot der NAS wieder "weggewischt", wer pfuscht mir da rein, wie schaffe ich, dass mein Befehl auch einen Neustart der NAS überlebt? Muss ich den an einer anderen Stelle Eintragen?

  • Es gibt nicht seit 4.3.4 oder 4.3.5 die Möglichkeit Starteinträge per WebGUI zu machen?


    Edit:

    Denkfehler. Crontab ist ja Zeitgesteuert. Dafür gibt es glaube ich nichts in der WebGUI.


    Edit2:

    Wieso kann QTS eigentlich immer noch nicht zeitgesteuerte Tasks per WebGUI anbieten. Linux kann es und Windows schon seit Urzeiten. Zusatzapp?

    Einmal editiert, zuletzt von Mavalok2 ()

  • Zumindest die QNAP-Eigenen Apps kann man per Zeitplan aktivieren.

    Geht aber erst seit der 4.3.5'er, oder? Bei meiner 4.3.3 kenne ich dieses Fenster gar nicht, wo ist das drinnen, Systemsteuerung?


    Interessanter sind aber einzelne Funktionen oder Scripts.

    Ja, da will ich lang ... habe auch schon versucht, die Schreibrechte von der crontab zu nehmen, kein Erfolg, ist nach dem Neustart wieder berechtigt und überschrieben.

  • welche FW betrifft das?

    Bin auf der 4.3.3 unterwegs und werde das wohl auch noch lange bleiben, da in den neueren QTS die "nicht-QNAP" PCI-Adapter für NVMe nicht mehr unterstützt werden ...


    Geht seit es Qboost gibt und wird in Qboost eingestellt.

    OK, danke, genau den Qboost habe ich deaktiviert, da er mich immer nervte ;)

  • In grauer Vorzeit gab es doch die Methode, die crontab nach /tmp zu kopieren, dann zu bearbeiten und wieder zurückschreiben.

    Bei rsnap funktioniert das immer noch.

  • Nicht das Bearbeiten ist das Problem, das bekomme ich hin und meine eigenen Einträge werden auch übernommen.


    Das Problem liegt daran, dass es noch "irgendwo" eine Schattenkopie, bzw. eine default crontab gibt, die bei einem Neustart alle bisherigen Änderungen überschreibt.


    So ein Thema hatten wir auch schon beim McAfee Virenscanner diskutiert, da wird auch eine Zeit nach Mitternacht für die Aktualisierung eingetragen, die man zwar ändern kann, nach einem Neustart steht dann wieder eine neue, eher zufällige Zeit zw. 0:00 und 1:00 drinnen ...


    Gleiches mit dem autom. Starten/Herunterfahren der NAS. Die Zeiten können einfach für jeden Tag in der GUI eingetragen werden, in der crontab steht immer nur der gerade aktuelle Tag drinnen und wird danach einfach mit dem nächstem Eintrag aus der "Liste" überschrieben. Alle manuell eingetragenen Start/Stop Zeilen in der crontab werden damit auch gelöscht.

    Würde mir auch schon weiterhelfen, wenn ich wüsste wo die Liste mit den Start/Stop Zeiten der GUI abgelegt werden, dann könnte ich einen eigenen dazuschreiben.

  • Das mit der crontab hat mich auch schon geärgert, ich hätte gerne einen Backup Job, der monatlich läuft, das NAS soll auch nur monatlich hochfahren. Geht aber nicht, in der Backup Schedule gibt es "monatlich", in der Power On/Off Schedule aber nicht, da ist bei "wöchentlich" Schluss.

    Das ist schon sehr sinnvoll </ironie>.


    Meine manuellen Änderungen für den monatlichen NAS Start wurden auch (beim runterfahren?) verworfen, als beim nächsten erwarteten Termin das NAS nicht startete habe ich es manuell (WOL) gestartet, und in der crontab waren wieder die default Einstellungen.

    Dazu habe ich auch keine Lösung bisher gefunden ?(.


    Gruss

  • Nicht das Bearbeiten ist das Problem, das bekomme ich hin und meine eigenen Einträge werden auch übernommen.

    Hmm, wie bearbeitest du es denn?


    vielleicht macht es ja einen unterschied, ob du crontab -e verwendest, oder eben das File manuell mit vi bearbeitest

  • 1. Macht es keinen Unterschied, da habe ich sogar mehrere Möglichkeiten versucht, crontab -e, mit vi, mit WinSCP, herunterladen - editieren - hochladen. Ist völlig egal...


    2. Schaut die crontab nach jedem Neustart "anders" aus, da werden die Einträge umsortiert, stehen andere Startzeiten drinnen (Power On/Off, McAfee AV Updatezeit, ...). Ganz egal, ob ich sie editieren wollte oder nicht, die crontab wird immer beim Neustart (oder Shutdown) von irgendeinem Service umgeschrieben.

  • Genau um das Erhaltenbleiben nach einem Neustart, darum ging es.

    Etwa so:

    Code
    CRONTAB="/etc/config/crontab"
    CRONTAB_TMP="/tmp/crontab.tmp"
    cat  ${CRONTAB} > ${CRONTAB_TMP}
    nano ${CRONTAB_TMP}
    cat  ${CRONTAB_TMP} > ${CRONTAB}
    crontab ${CRONTAB_TMP}

    Einmal editiert, zuletzt von frosch2 ()

  • :?:


    Ist das jetzt eine theoretische Abhandlung, dass crontab durch editieren mit nano, beim späterem Herunterfahren, nicht mehr von System überschrieben wird (warum dann nicht mehr)?


    Oder hast du das gerade versucht und DAS ist die Lösung? (Was ist anders, wenn ich das File am PC editiere und wieder hochlade?)

  • Nano war jetzt nur ein Beispiel. Der Editor ist egal.

    Es ging um das vorherige kopieren nach /tmp.

  • Es ging um das vorherige kopieren nach /tmp.

    Das braucht es nur für Änderungen der crontab mit einem Script.



    wird immer beim Neustart (oder Shutdown) von irgendeinem Service umgeschrieben.

    Logisch, wie sollten sonst die Einträge von der Gui in die Crontab gelangen?

    Cron arbeitet nunmal nur die Crontab ab und kein CGI-Script. Wenn Einträge in der Crontab manuell geändert werden, die vom System gesetzt wurden, dann werden diese auch durch das System überschrieben.

    Es sei denn du kennst eine Möglichkeit, dem System zu sagen - "Vorsicht die 3. Ziffer im 6. Eintrag wurde manuell gesetzt". ;)

  • Genau das gleiche Problem habe ich auch. Hier ist aber bisher keine Lösung beschrieben.

    Wenn Einträge in der Crontab manuell geändert werden, die vom System gesetzt wurden, dann werden diese auch durch das System überschrieben.

    Wo muss ich also meine Einträge abspeichern damit sie beim Neustart auch im Crontab landen:?:

    O.K. ich habs gefunden:

    crontab -l listet die aktiv von cron verwendete Crontab in /tmp/cron/crontabs nicht die Vorlage in /etc/config

    Man muss die Vorlage in /etc/config ändern.

    Dann funktioniert es:)

  • Man muss die Vorlage in /etc/config ändern.

    ... Ähm, ist das jetzt eine theoretische Abhandlung, oder hast du GENAU diese crontab geändert und das bleibt auch nach dem Neustart so?


    Ich versuche schon seit einiger Zeit, in der crontab /mnt/HDA_ROOT/.config/crontab eine zusätzliche Zeile einzufügen


    Damit wären wir wieder am Anfang meiner Frage (/etc/config/ = /mnt/HDA_ROOT/.config/)

    Wobei ich auch schon erfolglos die Temp in /tmp/cron/crontabs versucht habe

  • Ist schon merkwürdig. Ich gerade mal einen Eintrag in der /etc/config/crontab gemacht. Er bleibt nach einem Neustart erhalten (FW 4.3.4 0695).

    Wie lautet denn deine Zeile, wenn man fragen darf?