Команда CronJob для удаления нескольких подкаталогов по имени в заданном каталоге

Команда CronJob для удаления нескольких подкаталогов по имени в заданном каталоге

У меня есть две IP-камеры, которые отправляют снимки изображения на FTP-сервер каждые 10 секунд с 08:00 до 20:59. Структура каталогов выглядит следующим образом:

`-- 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

Меня интересует только сохранение копии снимков, сделанных в период:

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

Поэтому я хотел бы создатьCronJobкоторый будет периодически удалять все каталоги с именами «10», «11», «12», «15», «16», «17» и «18».

Я новичок в командах UNIX и много искал. Мне удалось создать эту команду:

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 "{}" \;

Кажется, это работает. Но правильный ли это путь?

решение1

Мне ваша команда кажется хорошей. Но вы могли бы ее немного сократить:

  • -depthможно удалить
  • \( -name ... -or -name ... \)можно сократить
  • вместо этого {} \;вы могли бы использовать {} +в результате чего будет только один вызовrm

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

Если ваши камеры можно настроить на сохранение изображений в период с 08:00 до 20:59, может быть, их можно настроить на сохранение изображений только в период с 08:00 до 09:59, с 13:00 до 14:59 и с 19:00 до 20:59?

Я думаю, что нет "правильного способа" сделать это. Если cron job работает для вас, почему бы и нет?

Связанный контент