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:
-depth
kann 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?