6개월이 지난 파일을 삭제하는 스크립트

6개월이 지난 파일을 삭제하는 스크립트

스크립트를 통해 실행할 월별 크론 작업을 설정합니다.

스크립트는 파일이 너무 커지면 매달 파일을 회전하고 오래된 파일의 이름을 바꾸는 것입니다. 6개월이 지난 파일을 삭제하고 싶습니다.

이 스크립트를 한 달에 한 번 실행하고 싶습니다. 오래된 것을 삭제할 수 있나요?

이것이 충분히 명확하지 않다면 알려주시기 바랍니다.

답변1

다음과 같이 시작할 수 있습니다.

find /your/file -mtime +182 -exec rm {} +

+182요일은 어디에 있습니까?

답변2

을 사용하면 됩니다 logrotate. 대부분의 Linux 시스템에서 이미 사용할 수 있으며 많은 패키지에는 이미 logrotate 스크립트가 미리 구성되어 있거나 이를 조정하거나 직접 작성할 수 있습니다.

답변3

@scottmarriott find의 모든 버전이 +/- -mtime을 지원하는 것은 아닙니다. 어떤 운영 체제와 find 버전을 사용하고 있습니까? – 요르단 2013년 5월 30일 13:04

@jordanm의 질문에 답하기 위한 한 가지 방법은 발견된 모든 find결과를 열거하고 루프 본문에서 이에 대해 일부 작업을 수행하는 것입니다 for.

# Using the general form:
for <identifier> in $(find <source-dir> -mtime +<days>) ; do <thing> ; done
 
# You could write their location to a parallel script file
echo '#!/bin/bash' > ./old.stuff
for hogfile in $(find . -mtime +182 ) ; do echo "rm $PWD/$hogfile &" >> "./old.stuff" ; done

# Make it into an executable
chmod +x ./old.stuff

# Profit
./old.stuff

관련 정보