Crontab möglichst Update-sicher erstellen

  • Moin liebe NAS'enden,


    ich benötige auf meinem NAS den Crontab-Eintrag


    0 1 1 * * 


    zur Ausgabe des Befehls


    http://192.168.1.x/relay/0?turn=on


    Gibt es dafür, zur Überbrückung meiner Unfähigkeit, eine geeignete App mit GUI?

    Wie kann ich ansonsten per ssh das Dingens in mein NAS "reinpfriemeln"


    Ziel ist es möglichst Update-sicher am Ersten jeden Monates den http-Befehl abzusetzen.




  • Nein, das musst Du per CLI eintragen.

    Wie und wo weißt Du durch das Backup Thema ;).


    Gruss

  • Nein, das musst Du per CLI eintragen.

    Verstehe ich das richtig, dass meine TS bzw. QNAP im Allgemeinen über die BackupStation (bzw. aktueller HBS) zwar monatlich (z.B. an jedem 1. des Monats) einen Sync machen kann, aber nicht direkt in der Lage ist, mit bordeigenen Mitteln (also ohne ein komplexen Zusatzscript), genau so monatlich (z.B. an jedem 1.des Monats) hoch- oder herunter zu fahren?

  • Der Kandidat hat 100 Gummipunkte! :beer:


    Das ist eben Programmierung, wie sie QNAP macht.

    Die linke Hand weiß nicht, was die rechte Hand macht. X/


    Im Kommentar meinte jemand, man könne auch direkt die RTC patchen, aber dazu habe ich nichts, absolut nichts, gefunden.

    Und leider auch auf Rückfrage keine Info dazu erhalten :(.


    Gruss

  • :qnap:


    Mehr fällt mir da nimmer ein .....


    Dachte nur, da der eine QNAP-Server sowieso 24/7 läuft kann der den http-Befehl absetzen ....

    Habe noch einen Bastel-Raspberry an meine 3-D-Druckern hängen, kann zwar nix, hat kaum was gekostet, ist sonst auch recht primitiv gestrickt; kann aber einfach so http-Befehl raus hauen; wann immer ich es möchte, wie immer ich es möchte; einfach so ..... naja ist halt kein QNAP, ach halt, der andere Raspberry hat OpenMediaVault drauf und funzt perfekt als NAS ..... Sorry das war nur mein Frust.... Brauche jetzt ein Abendessen und ein (keine quantitative Definition) Bier - Mahlzeit :thumbup:

    2 Mal editiert, zuletzt von CJS ()

  • Ganz einfach:


    Mit ssh einloggen


    Die Crontab ändern mit

    Code
    sudo crontab -e

    damit die Einträge ab sofort wirksam sind.


    Anschließend dieselbe Änderung in /etc/config/crontab vornehmen, damit die Einträge auch einen Reboot überstehen.


    Siehe auch hier.


    P. S.: Viel Spaß mit vi.:love:

  • Die Crontab ändern mit

    Danke :thumbup: - ich dachte das geht nicht auf einer QNAP


    Schluckt die TS die Syntax 0 1 1 * *für jeden 1. des Monats um 1:00 Uhr?


    - den http-Befehl muss ich wohl in eine sh packen?

    - muss ich den http-Befehl mit "curl" aufrufen?


     curl http://192.168.1.x/relay/0?turn=on


    Wo / in welchen Ordner packe ich die sh dann?

    Mit welchen Rechten? steht ja im Link ganz unten :whistling:




    Edit:

    Ähhh kann ich jetzt nicht direkt in der crontab den Befehl 0 1 1 * * /etc/init.d/startup aufrufen

    um die Kiste jeden 1. eines jeden Monats um 1:00 Uhr einzuschalten?

    Einmal editiert, zuletzt von CJS ()

  • Schluckt die TS die Syntax

    Ja.

    - den http-Befehl muss ich wohl in eine sh packen?

    - muss ich den http-Befehl mit "curl" aufrufen?

    sh bzw. Shell-Skript ist nicht nötig, wenn es sich, wie bei dir um einen Einzeiler handelt. Jedes Kommando, das in der Shell ausführbar ist, kann genommen werden.


    Zu beachten ist, dass in dem Moment, in dem Cron gestartet wird, die Suchpfade für die Shell noch nicht gesetzt sind. Daher müssen die Befehle idR. mit dem komplette Pfad angegeben werden.


    Statt curl kann auch wget genommen werden.


    Die Programme werden von root (=admin) aufgerufen. Besondere Rechnte sind nicht nötig, aber bei Shell-Scripts muss das x-Flag gesetzt sein.

  • Danke :thumbup: das habe ich (glaube ich) soweit verstanden.


    Der Befehl dient eigentlich nur der "Saft"-Zufuhr per WLAN-Steckdose zum Starten der TS-639 - die hat noch die Rubrik "Energiewiederherstellung" -> bei Saftzufuhr NAs einschalten.


    Aber siehe mein Edit oben: warum kann ich nicht direkt die Startup-Funktion über die Crontab nutzen?

    Habe bereits einen Poweroff (täglich, mit Verzögerung wenn Sync- oder Backup läuft) in der GUI hinterlegt gehabt, die sehe ich in der Crontab ...

  • Versuch es doch einfach mal und berichte ob das geht ;).


    Gruss

  • Aber siehe mein Edit oben: warum kann ich nicht direkt die Startup-Funktion über die Crontab nutzen?

    Mir ist gerade nicht klar, was du damit vorhast. Soll das Gerät sich selbst starten? Willst du ein anderes Gerät starten?


    Dein /etc/init.d/startup ruft das Shell-Skript /etc/init.d/wait_RR auf, und das tut bei mir gar nichts, weil der passende Eintrag in der Konfiguration fehlt. Das Skript ist eine lesbare Ascii-Datei, und die kannst du dir anschauen und gegebenenfalls raussuchen, was du brauchst. Testweise ist ein Start auch direkt in der Shell, also nicht über Cron, möglich, dann siehst du, was passiert.

  • Mir ist gerade nicht klar, was du damit vorhast.

    Oberstes Ziel ist einmal im Monat ein Backup-NAS automatisch einzuschalten um automatisch eine Datensicherung meines Haupt-NAS durchzuführen und danach automatisch wieder herunterzufahren. Die Diskussion lief hier im Thread.


    Bis Du dich eingeklinkt hast (Danke dafür) hatte ich verstanden, dass ich nur über ein komplexes Script das Backup-NAS einmal im Monat einschalten lassen kann. Eine Datensicherung kann ich zeitgesteuert einmal im Monat über die GUI der BackupStation wiederum realisieren. Das Herunterfahren hätte ich auch realisiert bekommen. Jeden Tag um eine Stunde nach Start des Backups herunterfahren und wenn ein Replikationsauftrag läuft zeitverzögern.


    Also bleibt nur noch das Einschalten der Backup-NAS einmal im Monat.

    Aufgrund der Erkenntnis dass dies nur mit diesem Script funktioniert, wollte ich versuchen das ganze über eine WLAN Steckdose zu realisieren.

    Mit einem

    -> http-Befehl (s.o.) aus meinem Haupt-NAS hätte ich die WLAN-Steckdose aktiviert/eingeschaltet

    -> das Backup-NAS fährt hoch da in [Energiewiederherstellung] die Funktion [Das NAS automatisch einschalten] aktiviert ist.

    -> 15 Minuten danach hätte ich den Sicherungsjob automatisiert laufen lassen (hier geht einmal am ersten Tag im Monat)

    -> eine Stunde nach Start des Sicherungsjobs hätte ich das Sicherungs-NAS automatisch heruntergefahren mit der Verzögerung bei Replikationsauftrag

    -> meine WLAN-Steckdose detektiert, dass der Stromverbrauch kleiner x Watt ist (in meinem Fall <10Watt) und schaltet wenn dieser Zustand 5 Minuten andauert ab.

    -> und lose geht es von vorne - in einem Monat


    Dass der letzte Vorschlag von FSC830 eher provokant war und nicht zielführend, habe ich jetzt auch erleben dürfen.

    Nein [Startup] funktioniert so nicht.


    Da die einzige Kiste die bei mir 24/7 läuft das Haupt-NAS ist wollte ich diesen http-Befehl zum Anschalten der WLAN-Steckdose von diesem absetzen lassen. Wenn es eine einfachere Möglichkeit als über das Script von FSC830 oder meine WLAN-Steckdose gäbe, das Backup-NAS einmal am ersten Tag im Monat einzuschalten, wäre es natürlich noch toller.

  • ???

    Wieso war das provokant? Das hast Du aber in den vollkommen falschen Hals bekommen!

    Es ist nur so, das nicht unbedingt jeder schon alles augetestet hat, insofern war das ein ernst gemeinter Vorschlag.

    Ich habe mir auch nicht extra angesehen, was alles hinter der "startup" steckt,

    Also entspannen! Da war nichts provokant gemeint.


    Gruss

  • Da war nichts provokant gemeint.

    :beer: - alles gut - naja bis auf QNAP's Funktions-Wirrwarr - wie du heute ja auch schon in einem anderen Thread freundlich bemerkt hast (die Unzulänglichkeiten monatlicher Start der NAS vs. monatliches Backup) ;(

  • So wie ich das sehe, hätte dir das startup-Skript nicht weiter geholfen, weil das scheinbar nur die Synchronisation startet, nicht aber das Backup-NAS hochfährt. (Im Detail habe ich mich damit aber nicht beschäftigt.)


    Was spricht gegen das curl bzw. wget im Cron-Job, außer dass du dafür noch eine WLAN-Steckdose kaufen musst? Du könntest doch stattdessen Wake-on-LAN im Cronjob starten und das Backup-NAS damit hochfahren, dann sparst du die Steckdose.


    Möglicherweise ist es einfacher, du startest den Backup-Job nicht auf dem Haupt-NAS, sondern auf dem Backup-NAS startest du einen Job, der die Daten für das Backup holt (geht über RRTR, Rsync oder im LAN auch normaler Job über gemountete Verzeichnisse). Das hätte zusätzlich den Vorteil, dass das Backup-NAS komplett vom Internet getrennt sein kann und damit die Backups sicher gegen Verschlüsselungstrojaner sind.

  • außer dass du dafür noch eine WLAN-Steckdose kaufen musst

    Habe ich immer genügend im Haus (Shelly's )



    Wake-on-LAN im Cronjob starten

    Kenne ich mich (noch) nicht aus



    einfacher, du startest den Backup-Job nicht auf dem Haupt-NAS

    So mache ich es bereits bzw. so habe ich es eingepflegt (laufen tut es ja noch nicht rund ) Backup-NAS pulled vom Haupt-NAS


    Du könntest doch stattdessen Wake-on-LAN im Cronjob starten

    Darf die NAS dazu ausgeschaltet sein oder darf sie nur schlafen?



    Habe gerade versucht deine Tipps umzusetzen:


    Screenshot 2022-03-08 085153.png


    ssh auf den/die Haupt-NAS - Steckdose an und aus funktioniert perfekt


    Nächster Schritt:


    Mittels crontab -e und vi auf /etc/config/crontab den Eintrag 45 8 8 * * curl 192.168.1.124/relay/0?turn=on >/dev/null 2>&1 reingebastelt und Cron-Daemon restartet (letzter Eintrag im Screenshot)


    Screenshot 2022-03-08 085257.png


    8:45 abgewartet - nix

    8:46 abgewartet - noch weniger

    9:00 - immer noch nix - wenn der Eintrag kein Zug der BahnAG ist wird das heute wohl auch nichts mehr werden :(


    Was mache ich falsch? Was verstehe ich nicht richtig?


    crontab /etc/config/crontab && /etc/init.d/crond.sh restart war wohl irgendwie nicht genug !?

    Nachdem ich die Kiste komplett neu gestartet habe funktionierte der Test (nachdem ich die Uhrzeit korrigiert habe) korrekt.

    3 Mal editiert, zuletzt von CJS ()