FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Tommy82 am 24 März 2019, 20:07:59

Titel: at soll alle 14 Tage ein Verzeichniss leeren
Beitrag von: Tommy82 am 24 März 2019, 20:07:59
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
Titel: Antw:at soll alle 14 Tage ein Verzeichniss leeren
Beitrag von: Otto123 am 24 März 2019, 20:15:21
Hi,

was funktioniert nicht?
Die Zeit - sieht gut aus.
Das Kommando? ist falsch: als Shell Kommando muss es in ""

Gruß Otto
Titel: Antw:at soll alle 14 Tage ein Verzeichniss leeren
Beitrag von: Tommy82 am 24 März 2019, 20:16:48
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
Titel: Antw:at soll alle 14 Tage ein Verzeichniss leeren
Beitrag von: Otto123 am 24 März 2019, 20:18:14
https://commandref.fhem.de/#command

Der user fhem muss es natürlich auch dürfen :)
Titel: Antw:at soll alle 14 Tage ein Verzeichniss leeren
Beitrag von: Tommy82 am 25 März 2019, 20:00:22
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

Titel: Antw:at soll alle 14 Tage ein Verzeichniss leeren
Beitrag von: Otto123 am 25 März 2019, 20:04:11
TRIGGERTIME_FMT 2019-04-08 20:57:38
So siehst Du es in der Übersicht
attr a_test2 stateFormat {InternalVal($name,"TRIGGERTIME_FMT","")}
Titel: Antw:at soll alle 14 Tage ein Verzeichniss leeren
Beitrag 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.
Titel: Antw:at soll alle 14 Tage ein Verzeichniss leeren
Beitrag von: Morgennebel am 26 März 2019, 11:21:47
https://crontab.guru/#14_0_*/14_*_* (https://crontab.guru/#14_0_*/14_*_*)

Ciao, -MN
Titel: Antw:at soll alle 14 Tage ein Verzeichniss leeren
Beitrag 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
Titel: Antw:at soll alle 14 Tage ein Verzeichniss leeren
Beitrag von: Otto123 am 26 März 2019, 16:18:27
@Wuppi68 hast Du den probiert? mit irritiert der " in der Mitte?  ;)
Titel: Antw:at soll alle 14 Tage ein Verzeichniss leeren
Beitrag von: Tommy82 am 26 März 2019, 20:11:08
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
Titel: Antw:at soll alle 14 Tage ein Verzeichniss leeren
Beitrag von: Wuppi68 am 26 März 2019, 21:01:33
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
Titel: Antw:at soll alle 14 Tage ein Verzeichniss leeren
Beitrag von: Tommy82 am 02 Juni 2019, 20:31:12
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!?