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
Tags: Linux cronDie 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.
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
/etc/logrotate.conf
/etc/logrotate.d/apache2
/etc/cron.daily/logrotate