Moin,
keine Ahnung, ob es da etwas HA-spezifisches gibt, aber mit einem einfachen Bash-Script und dem Befehl "
find" sollte sich sowas auch realisieren lassen.
Halt irgendwas in diese Richtung:
find /Pfad/zu/den/Dateien/ -name "<Platzhalter-Bildname>" -mtime +14 -delete
Ich würde aber vorher testen, bevor man sowas losrattern lässt.... Mittels "find" kannst Du halt suchen und auch eine Löschung vornehmen lassen. Als Trockenlauf würde es sich eher anbieten, dass man das "-delete" erstmal aussen vor lässt.
Alles nachfolgende findet im HomeAssistant-Terminal statt!
Vielleicht erstellst Du Dir auch erstmal ein paar Testdateien mit "
touch". Zunächst mal einen Test-Ordner erstellen:
mkdir /root/config/www/date-test
und dann in diesen wechseln:
cd /root/config/www/date-test
. Unter Debian z.B. sind da ein paar Test-Dateien recht flott erstellt:
Bash:
touch -d "1 year ago" 1y.txt
touch -d "3 months ago" 3m.txt
touch -d "2 months ago" 2m.txt
touch -d "1 month ago" 1m.txt
touch -d "14 days ago" 14d.txt
touch -d "7 days ago" 7d.txt
touch -d "3 days ago" 3d.txt
touch -d "1 day ago" 1d.txt
Hab das grade mal unter HA getestet... funktioniert natürlich nicht. Im folgenden Format funktioniert es allerdings: "touch -t <YYYYMMDDHHSS> <Dateiname>", also z.B.:
touch -t 202412241800 frohe_weihnachten.txt
oder
touch -t 202501010000 frohes_neues.txt
Weisst schon...

Das ganze natürlich in Einheiten, welche für Dich zum testen auch Sinn machen (wie z.B. die o.g. Beispiele). Mitunter auch einfach mit entsprechend klaren Dateinamen:
Bash:
touch -t 202505160000 20250516.txt
touch -t 202505130000 20250513.txt
touch -t 202505090000 20250509.txt
touch -t 202505020000 20250502.txt
touch -t 202504160000 20250416.txt
Und so weiter... halt so wie Du es brauchst... Prinzip sollte ja bis hier soweit klar sein (falls nicht, einfach fragen!)
In der Konsole kannst Du jetzt auch nochmal kurz einen Blick über die erstellten Dateien werfen. Um bei allen Dateien das vollständige Datum inkl. Uhrzeit sehen zu können (vor allem bei älteren!), braucht der Befehl "ls" allerdings noch einen Zusatz in Form von "--full-time", womit der konkrete Befehl dann
ls --full-time
lautet. Ansonsten werden bei älteren Dateien nur die Datumsangaben angezeigt - hier mal ein entsprechender Screenshot:
So... nun haben wir vermutlich schon einen Haufen Dateien zum testen erzeugt - nun geht es an die Filterung. Wie gesagt, lassen wir die Löschung erstmal aussen vor und schauen erstmal nur, dass wir auch die korrekten Ergebnisse bekommen. Das könnte dann z.B. so aussehen:
find /root/config/www/date-test/ -name "*.txt" -mtime +7
(älter als X-Tage)
Das sieht dann beim testen halt so aus:
Musste halt mal schauen, wie es dann für Dich passt. Danach kannst Du auch mal einen Lösch-Testlauf starten indem Du noch ein "-delete" hinter den Befehl hängst:
Wenn es dann wunschgemäß für Dich filtert, änderst Du den Befehl einfach mal auf das gewünschte Verzeichnis ab, gleiches dann eben auch für den Zeitraum z.B.:
find /Pfad/zu/den/gespeicherten/Bildern/ -name "*.jpg" -mtime +14
Natürlich zum testen erstmal
ohne "-delete". Ich möchte an dieser Stelle nochmal darauf hinweisen, dass wir hier grade "nur" Dateien suchen, die dann auch "gelöscht" werden - nicht, dass noch die falschen Dinge gelöscht werden.
Wir wissen ja nun, dass ein "-delete" die gefundenen Dateien entfernt und müssen das "jetzt" auch erstmal nicht weiter testen. Vielmehr muss man sich jetzt darum kümmern, dass ein entsprechendes Script erstellt wird. Am Anfang eines jeden Bash-Scripts steht die
Shebang und diese sieht bei Bash dann einfach so aus:
#!/bin/bash
. Ansonsten kann man im Script dann auch einfach die Konsolenbefehle nutzen, womit das "Script" dann eigentlich auch nur aus 2 Zeilen besteht:
Bash:
#!/bin/bash
find /Pfad/zu/den/gespeicherten/Bildern/ -name "*.jpg" -mtime +14
Kannst Du mittels irgendeinem Editor erstellen, oder dem Kram einfach direkt aus der Shell in eine Datei pumpen. Hier beispielhaft mal der Dateiname "script.sh", kannst Du aber nennen wie Du lustig bist.
echo '#!/bin/bash' > script.sh
echo 'find /Pfad/zu/den/gespeicherten/Bildern/ -name "*.jpg" -mtime +14' >> script.sh
Danach muss das Script noch ausführbar gemacht werden:
chmod +x script.sh
Dann das Script auch einmal testen mittels
./script.sh
. Wenn alles läuft, wie Du es Dir vorgestellt hast, packst Du im Script (ggf. in HA über den Editor) noch kurz das "-delete" hinten an den find-Befehl und das Script ist einsatzbereit.
Alles weiter dann "vermutlich" (weisst ja, bin nicht so der HA-Crack) einfach via
HomeAssistant - Shell Command, wobei Du vermutlich auch einfach den find-Befehl darüber starten könntest, aber warum einfach, wenn es auch kompliziert geht und die Shell-Scripte kannst Du auch abseits von HomeAssistant nutzen (wer weiss schon, was die Zukunft noch so bringt)
