스크립트를 통해 실행할 월별 크론 작업을 설정합니다.
스크립트는 파일이 너무 커지면 매달 파일을 회전하고 오래된 파일의 이름을 바꾸는 것입니다. 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