Hi zusammen,
mir gehen aktuell bei einer Flanke die Ideen was aus und hoffe dass eventuell von euch jemand Erfahrungen dazu hat.
Worum geht es?
Ich habe ein Script, welches täglich abends um 21 Uhr ausgeführt werden soll. Daher war mein erster Gedanke, dass ich auf meiner QNap einen Eintrag in der Crontab hinterlege. Bei der QNap sollte man nicht auf herkömmlichen Wege die Einträge pflegen - so besagt es die Dokumentation. Daher habe ich mich an diese hier gehalten.
Die Aufgabe des Scripts ist es, per Docker einen Container zu starten:
Die Routine innerhalb de Containers beendet sich nach einem Moment selbstständig. Hintergrund: Dort wird die Gültigkeit eines Zertifikats geprüft.
Das Script liegt ausführbar unter dem /share/ Bereich (Über die QNap WebApp habe ich mir dort einen Ordner für Scripte angelegt).
Zum Test habe ich dann manuell das Script angestoßen und konnte über die Docker Logs erkennen, dass die Prüfung anhand eines Timestamps erfolgreich durchgeführt wurde. Wenn ich nun den Job nach der Doku von QNap hinterlegt habe und den Dienst per Terminal einmal softwareseitig neugestartet habe - was am gleichen Tag vor 21 Uhr gemacht wurde, wird ebenfalls das Script durchgeführt.
Soweit so gut. Nun ist es so, dass die QNap bei mir gegen Mitternacht heruntergefahren wird und morgens wieder gestartet wird. Bedeutet, wenn ich nach einem Tag die Logs prüfe, kann ich keinen Eintrag bzgl. Durchführung feststellen!
Nach vielen hin und her - und weil ich die Problemquelle noch nicht richtig identifizieren kann (eher was auf der Docker Flanke, oder doch eher was in Richtung Cron Job), habe ich mein Script etwas erweitert:
Einmal möchte ich, dass das Script einfach eine leere Datei mit nem Zeitstempel anlegt (Zeile2), um damit festzustellen, ob das Script ausgeführt wurde. Dann ist es so, wenn man händisch den "docker start..." Befehl ausführt, dass man einen kleinen Result-Code zurückbekommt. Diesen lass ich mir einfach per Pipe in eine Datei schreiben.
Auch hier, wenn ich manuell das Script aufrufe, wird die timestamp Datei anglegt und auch was in die txt Datei geschrieben. Schaue ich einen Tag später nach, stelle ich fest, dass die timestamp Datei angelegt wurde, aber nichts in die txt Datei eingegangen ist. Genausowenig findet man was in den Docker Logs des Containers.
Ein zeitliches Problem kann es auch nicht sein. Würde das Script direkt zum Neustart ausgeführt, wäre potentiell Docker noch nicht final hochgefahren, aber um 21 Uhr ist alles aktiv.
Ich habe keine Idee mehr. Hat von euch jemand noch eine Idee hierzu? Ich bin gespannt
Die letzte Flanke wäre ggf. der User, welcher von der Crontab genutzt wird, dass hier in Richtung Docker ne Restriktion ist. Aber habe ich den Cron Service vor 21 neugestartet, klappt es ja...
Viele Grüße!
mir gehen aktuell bei einer Flanke die Ideen was aus und hoffe dass eventuell von euch jemand Erfahrungen dazu hat.
Worum geht es?
Ich habe ein Script, welches täglich abends um 21 Uhr ausgeführt werden soll. Daher war mein erster Gedanke, dass ich auf meiner QNap einen Eintrag in der Crontab hinterlege. Bei der QNap sollte man nicht auf herkömmlichen Wege die Einträge pflegen - so besagt es die Dokumentation. Daher habe ich mich an diese hier gehalten.
Die Aufgabe des Scripts ist es, per Docker einen Container zu starten:
Code:
#!/bin/bash
docker start certbotgodaddy
Die Routine innerhalb de Containers beendet sich nach einem Moment selbstständig. Hintergrund: Dort wird die Gültigkeit eines Zertifikats geprüft.
Das Script liegt ausführbar unter dem /share/ Bereich (Über die QNap WebApp habe ich mir dort einen Ordner für Scripte angelegt).
Zum Test habe ich dann manuell das Script angestoßen und konnte über die Docker Logs erkennen, dass die Prüfung anhand eines Timestamps erfolgreich durchgeführt wurde. Wenn ich nun den Job nach der Doku von QNap hinterlegt habe und den Dienst per Terminal einmal softwareseitig neugestartet habe - was am gleichen Tag vor 21 Uhr gemacht wurde, wird ebenfalls das Script durchgeführt.
Soweit so gut. Nun ist es so, dass die QNap bei mir gegen Mitternacht heruntergefahren wird und morgens wieder gestartet wird. Bedeutet, wenn ich nach einem Tag die Logs prüfe, kann ich keinen Eintrag bzgl. Durchführung feststellen!
Nach vielen hin und her - und weil ich die Problemquelle noch nicht richtig identifizieren kann (eher was auf der Docker Flanke, oder doch eher was in Richtung Cron Job), habe ich mein Script etwas erweitert:
Code:
#!/bin/bash
docker start certbotgodaddy >> /share/jarvis/scripts/logs/resultCode.txt
touch "/share/jarvis/scripts/logs/cron-exec-log_$(date +'%Y%m%d%H%M.%S')"
Einmal möchte ich, dass das Script einfach eine leere Datei mit nem Zeitstempel anlegt (Zeile2), um damit festzustellen, ob das Script ausgeführt wurde. Dann ist es so, wenn man händisch den "docker start..." Befehl ausführt, dass man einen kleinen Result-Code zurückbekommt. Diesen lass ich mir einfach per Pipe in eine Datei schreiben.
Auch hier, wenn ich manuell das Script aufrufe, wird die timestamp Datei anglegt und auch was in die txt Datei geschrieben. Schaue ich einen Tag später nach, stelle ich fest, dass die timestamp Datei angelegt wurde, aber nichts in die txt Datei eingegangen ist. Genausowenig findet man was in den Docker Logs des Containers.
Ein zeitliches Problem kann es auch nicht sein. Würde das Script direkt zum Neustart ausgeführt, wäre potentiell Docker noch nicht final hochgefahren, aber um 21 Uhr ist alles aktiv.
Ich habe keine Idee mehr. Hat von euch jemand noch eine Idee hierzu? Ich bin gespannt
Die letzte Flanke wäre ggf. der User, welcher von der Crontab genutzt wird, dass hier in Richtung Docker ne Restriktion ist. Aber habe ich den Cron Service vor 21 neugestartet, klappt es ja...
Viele Grüße!