CronJob-Befehl zum Löschen mehrerer Unterverzeichnisse nach Namen in einem bestimmten Verzeichnis

CronJob-Befehl zum Löschen mehrerer Unterverzeichnisse nach Namen in einem bestimmten Verzeichnis

Ich habe zwei IP-Kameras, die alle 10 Sekunden von 08:00 bis 20:59 Uhr Schnappschüsse an einen FTP-Server senden. Die Verzeichnisstruktur sieht folgendermaßen aus:

`-- public_html
    `-- securitycams
        |-- cam01
        |   |-- 20190601
        |   |   |-- 08
        |   |   |   |-- 20190601_080000.jpg
        |   |   |   |-- 20190601_080010.jpg
        |   |   |   |-- 20190601_080020.jpg
        |   |   |   `-- ...
        |   |   |-- 09
        |   |   |   |-- 20190601_090000.jpg
        |   |   |   |-- 20190601_090010.jpg
        |   |   |   |-- 20190601_090020.jpg
        |   |   |   `-- ...
        |   |   |-- 10
        |   |   |-- 11
        |   |   |-- 12
        |   |   |-- 13
        |   |   |-- 14
        |   |   |-- 15
        |   |   |-- 16
        |   |   |-- 17
        |   |   |-- 18
        |   |   |-- 19
        |   |   `-- 20
        |   `-- 20190602
        |       |-- 08
        |       |   |-- 20190602_080000.jpg
        |       |   |-- 20190602_080010.jpg
        |       |   |-- 20190602_080020.jpg
        |       |   `-- ...
        |       |-- 09
        |       |   |-- 20190602_090000.jpg
        |       |   |-- 20190602_090010.jpg
        |       |   |-- 20190602_090020.jpg
        |       |   `-- ...
        |       |-- 10
        |       |-- 11
        |       |-- 12
        |       |-- 13
        |       |-- 14
        |       |-- 15
        |       |-- 16
        |       |-- 17
        |       |-- 18
        |       |-- 19
        |       `-- 20
        `-- cam02
        |   |-- 20190601
        |   |   |-- 08
        |   |   |   |-- 20190601_080000.jpg
        |   |   |   |-- 20190601_080010.jpg
        |   |   |   |-- 20190601_080020.jpg
        |   |   |   `-- ...
        |   |   |-- 09
        |   |   |   |-- 20190601_090000.jpg
        |   |   |   |-- 20190601_090010.jpg
        |   |   |   |-- 20190601_090020.jpg
        |   |   |   `-- ...
        |   |   |-- 10
        |   |   |-- 11
        |   |   |-- 12
        |   |   |-- 13
        |   |   |-- 14
        |   |   |-- 15
        |   |   |-- 16
        |   |   |-- 17
        |   |   |-- 18
        |   |   |-- 19
        |   |   `-- 20
        |   `-- 20190602
        |       |-- 08
        |       |   |-- 20190602_080000.jpg
        |       |   |-- 20190602_080010.jpg
        |       |   |-- 20190602_080020.jpg
        |       |   `-- ...
        |       |-- 09
        |       |   |-- 20190602_090000.jpg
        |       |   |-- 20190602_090010.jpg
        |       |   |-- 20190602_090020.jpg
        |       |   `-- ...
        |       |-- 10
        |       |-- 11
        |       |-- 12
        |       |-- 13
        |       |-- 14
        |       |-- 15
        |       |-- 16
        |       |-- 17
        |       |-- 18
        |       |-- 19
        |       `-- 20

Ich möchte lediglich eine Kopie der Schnappschüsse behalten, die zwischen den folgenden Ereignissen erstellt wurden:

08:00 and 09:59
13:00 and 14:59
19:00 and 20:59.

Deshalb möchte ich eineCron-JobDadurch werden in regelmäßigen Abständen alle Verzeichnisse mit den Namen „10“, „11“, „12“, „15“, „16“, „17“ und „18“ gelöscht.

Ich bin ein Neuling in Sachen UNIX-Befehle und habe viel gesucht. Ich habe es geschafft, diesen Befehl zu erstellen:

find /home/******/public_html/securitycams/* -depth \( -name "10" -or -name "11" -or -name "12" -or -name "15" -or -name "16" -or -name "17" -or -name "18" \) -type d -exec rm -r "{}" \;

Es scheint zu funktionieren. Aber ist das der richtige Weg?

Antwort1

Dein Befehl sieht für mich gut aus. Aber du könntest ihn etwas abkürzen:

  • -depthkann entfernt werden
  • \( -name ... -or -name ... \)kann gekürzt werden
  • stattdessen {} \;könnten Sie verwenden, {} +was zu nur einem Aufruf von führtrm

find /home/******/public_html/securitycams -type d -name "1[0-25-8]" -exec rm -r {} +

Wenn Ihre Kameras so konfiguriert werden können, dass sie Bilder zwischen 08:00 und 20:59 Uhr speichern, können sie dann vielleicht auch so konfiguriert werden, dass sie nur zwischen 08:00 und 09:59 Uhr, 13:00 und 14:59 Uhr und 19:00 und 20:59 Uhr Bilder speichern?

Ich glaube, es gibt keinen „richtigen Weg“, dies zu tun. Wenn ein Cron-Job für Sie funktioniert, warum nicht?

verwandte Informationen