Cron-Job in /etc/cron.hourly

13.12.2023 - Lesezeit: 2 Minuten

Mein Raspi Server soll jede Stunde das Bild der AIDAmar Webcam speichern, so dass ich nach der Kreuzfahrt eine Erinnerung habe.

In /etc/cron.hourly/ die ausführbare Datei wnfwebcamaidamar anlegen.

$ sudo nano /etc/cron.hourly/wnfwebcamaidamar

Den Pfad zur Webcam habe ich anonymisiert, da ich nicht weiß unter welcher Lizenz die Webcam-Bilder stehen.

#!/usr/bin/env python3
import os.path
import datetime
import requests

# Pfad zur AIDAmar Webcam
WEBCAM = "https://webcamserver.org/webcam.jpg"
# Pfad zu gesicherten Bildern
ZIELPFAD = "/var/opt/wnfwebcamaidamar/"

img_datei = datetime.datetime.now().strftime('%Y_%m_%d_%H_%M_%S')
img_datei = 'webcam_AIDAmar_%s.jpg' % img_datei
img_datei = os.path.join(ZIELPFAD, img_datei)
img_daten = requests.get(WEBCAM).content
with open(img_datei, 'wb') as handler:
    handler.write(img_daten)
    # print(img_datei)

Datei in /etc/cron.hourly/ wird ignoriert

wiki.ubuntuusers.de/Cron/

Die Dateien in den Ordnern /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/ und /etc/cron.monthly/ werden mittels run-parts gestartet und unterliegen deshalb Einschränkungen:

Sie müssen ausführbar sein.

Der Dateiname darf nur große und kleine Buchstaben, Ziffern, Unterstriche und Bindestriche enthalten; andernfalls wird die Datei ignoriert. Der reguläre Ausdruck "^[a-zA-Z0-9_-]+$" definiert exakt alle zulässigen Zeichenfolgen. Punkt und Umlaute sind also beispielsweise nicht erlaubt.

Tags: Linux cron

Apache2 startet täglich neu um 6:25 Uhr

02.03.2019 - Lesezeit: ~1 Minute

Apache2 startet täglich neu um 6:25 Uhr, was auf einem Rechner, der 24/7 läuft wenig Sinn macht. (Denn es gibt Leute, die zu dieser Zeit schon arbeiten.;-)

Deshalb habe ich den täglichen cron-job auf 2:25 Uhr umgestellt.

$ sudo nano /etc/crontab
# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 2    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 2    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 2    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
$ sudo service cron reload

Hintergrund

  • damit die Logdateien von Apache nicht zu groß werden werden diese mit Logrotate umbenannt und gepackt.
  • Logrotate stoppt deshalb den Apache bearbeitet die Logdateien und startet den Apache wieder
    /etc/logrotate.conf
    /etc/logrotate.d/apache2
  • Logrotate selbst wird vom cron.dayly aufgerufen
    /etc/cron.daily/logrotate
Tags: Apache logrotate cron