Hi,
ich würde gerne über ein at alle 14 Tage mein gespeicherten WebCam Videos löschen lassen.
Hatte an sowas gedacht, aber das funktioniert nicht
Internals:
CFGFN
COMMAND rm www/tablet/BlinkCamera/Kameras/thumbnail/camera/
DEF +*336:00:00 rm www/tablet/BlinkCamera/Kameras/thumbnail/camera/
FUUID 5c97d448-f33f-f412-5952-dfa36f08ce69e8f7
NAME CameraBilderLoeschen
NR 568
NTM 21:04:59
PERIODIC yes
RELATIVE yes
REP -1
STATE Next: 21:04:59
TIMESPEC 336:00:00
TRIGGERTIME 1554663899.7216
TRIGGERTIME_FMT 2019-04-07 21:04:59
TYPE at
Helper:
DBLOG:
state:
myDbLog:
TIME 1553454439.47691
VALUE Next
READINGS:
2019-03-24 20:07:19 state Next: 21:04:59
Attributes:
group at
room Zentral
verbose 5
Wie wäre es richtig?
Danke
Hi,
was funktioniert nicht?
Die Zeit - sieht gut aus.
Das Kommando? ist falsch: als Shell Kommando muss es in ""
Gruß Otto
Zitat von: Otto123 am 24 März 2019, 20:15:21
Hi,
was funktioniert nicht?
Die Zeit - sieht gut aus.
Das Kommando? ist falsch muss in ""
Gruß Otto
Es wird nichts gelöscht, mit den Anführungszeichen teste ich, Danke
Gesendet von iPhone mit Tapatalk
https://commandref.fhem.de/#command
Der user fhem muss es natürlich auch dürfen :)
Also mit
"rm www/tablet/BlinkCamera/Kameras/thumbnail/camera/*"
wird korrekt gelöscht, allerdings verwirrt mich die Zeit dann doch noch etwas da bei "Next" jetzt 20:57:38 steht!?
Internals:
CFGFN
COMMAND "rm www/tablet/BlinkCamera/Kameras/thumbnail/camera/*"
DEF +*336:00:00 "rm www/tablet/BlinkCamera/Kameras/thumbnail/camera/*"
FUUID 5c97d448-f33f-f412-5952-dfa36f08ce69e8f7
NAME CameraBilderLoeschen
NR 568
NTM 20:57:38
PERIODIC yes
RELATIVE yes
REP -1
STATE Next: 20:57:38
TIMESPEC 336:00:00
TRIGGERTIME 1554749858.55837
TRIGGERTIME_FMT 2019-04-08 20:57:38
TYPE at
Helper:
DBLOG:
state:
myDbLog:
TIME 1553540308.89094
VALUE Next
READINGS:
2019-03-25 19:58:28 state Next: 20:57:38
Attributes:
group at
room Zentral
verbose 5
TRIGGERTIME_FMT 2019-04-08 20:57:38
So siehst Du es in der Übersicht
attr a_test2 stateFormat {InternalVal($name,"TRIGGERTIME_FMT","")}
Solche shell Kommandos würde ich immer über einen cronjob auf Systemebene ausführen anstatt über FHEM.
Insbesondere, da dieses at mit seinen Zeiten nicht persistent ist. Das heißt, nach einem FHEM Neustart beginnt die Zählung der 336 Stunden mit dem Startzeitpunkt von FHEM und nicht mit dem Zeitpunkt des letzten Löschens.
https://crontab.guru/#14_0_*/14_*_* (https://crontab.guru/#14_0_*/14_*_*)
Ciao, -MN
oder
find /opt/fhem/www/tablet/BlinkCamera/Kameras/thumbnail/camera/ -type f -mtime +14 -name '*.MovieExtension' -delete
löscht dann alles was älter als 14 Tage ist und kann "jederzeit" laufen
korrigiert - Danke Otto :-)
falsch: find /opt/fhem/www/tablet/BlinkCamera/Kameras/thumbnail/camera/" -type f -mtime +14 -name '*.MovieExtension' -delete
@Wuppi68 hast Du den probiert? mit irritiert der " in der Mitte? ;)
Zitat von: betateilchen am 26 März 2019, 10:28:41
Solche shell Kommandos würde ich immer über einen cronjob auf Systemebene ausführen anstatt über FHEM.
Insbesondere, da dieses at mit seinen Zeiten nicht persistent ist. Das heißt, nach einem FHEM Neustart beginnt die Zählung der 336 Stunden mit dem Startzeitpunkt von FHEM und nicht mit dem Zeitpunkt des letzten Löschens.
Das ist ein interessanter (und wichtige) Hinweis, kann man das nicht über das at steuern das die 336 Stunden seid dem letzten löschen gerechnet werden anstatt ab dem Neustart?
Ansonsten hast du recht, wäre es besser über einen Cronjob
Zitat von: Wuppi68 am 26 März 2019, 13:30:25
oder
find /opt/fhem/www/tablet/BlinkCamera/Kameras/thumbnail/camera/ -type f -mtime +14 -name '*.MovieExtension' -delete
löscht dann alles was älter als 14 Tage ist und kann "jederzeit" laufen
korrigiert - Danke Otto :-)
falsch: find /opt/fhem/www/tablet/BlinkCamera/Kameras/thumbnail/camera/" -type f -mtime +14 -name '*.MovieExtension' -delete
Das in das at? Kannst du mit das etwas genauer erklären?
Danke
Zitat von: Tommy82 am 26 März 2019, 20:11:08
Das ist ein interessanter (und wichtige) Hinweis, kann man das nicht über das at steuern das die 336 Stunden seid dem letzten löschen gerechnet werden anstatt ab dem Neustart?
Ansonsten hast du recht, wäre es besser über einen Cronjob
Das in das at? Kannst du mit das etwas genauer erklären?
Danke
ich würde das auch in einen Cron Job packen ;-)
ansonsten in ein AT als Befehl packen
ungefähr so:
define DeleteVideosAfter2Weeks at *01:00 "find /opt/fhem/www/tablet/BlinkCamera/Kameras/thumbnail/camera/ -type f -mtime +14 -name '*.MovieExtension' -delete"
muss natürlich noch die extension entsprechend anpassen
Hab es jetzt mal so gemacht, mal sehen ob es funktioniert
+*01:00 "find /www/tablet/BlinkCamera/Kameras/thumbnail/camera/* -type f -mtime +14 -name '*.avi' -delete"
Also das hat nicht funktioniert.
Hab jetzt mal einen crontab angelegt
14 0 */14 * * find /opt/fhem/www/tablet/BlinkCamera/Kameras/thumbnail/camera/ -type f -mtime +14 -name '*.MovieExtension' -delete
Das müsste doch funktionieren oder!?