CronJob 명령은 특정 디렉터리의 여러 하위 디렉터리를 이름별로 삭제합니다.

CronJob 명령은 특정 디렉터리의 여러 하위 디렉터리를 이름별로 삭제합니다.

저는 08:00부터 20:59까지 10초마다 이미지 스냅샷을 FTP 서버로 보내는 두 대의 IP 카메라를 가지고 있습니다. 디렉토리 구조는 다음과 같습니다.

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

그러므로 나는시간제 직업이렇게 하면 "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 사이의 이미지만 저장하도록 구성할 수도 있습니다. 20 이미지 사이: 59?

나는 이것을 수행하는 "올바른 방법"이 있다고 생각하지 않습니다. 크론 작업이 효과가 있다면 왜 안 되겠습니까?

관련 정보