28일이 지난 디렉터리의 모든 파일을 tar-gz하려면 어떻게 해야 합니까?

28일이 지난 디렉터리의 모든 파일을 tar-gz하려면 어떻게 해야 합니까?

매일 폴더의 로그 파일을 삭제합니다.

find ~/folder -mtime +28 -type f -delete

이제 위 삭제 명령의 영향을 받은 모든 파일을 보관 및 압축하고 이 tar.gz를 새 디렉터리 폴더 2에 저장하려고 합니다.

그럼 다음과 같이 가정해보자:

~/folder:
  - x1 (3 days old)
  - x2 (3 days old)
  - y1 (29 days old)
  - y2 (29 days old)

~/folder2:
  - genericname1.tar.gz: (some already present archive)
    - ...

보관, 압축 및 삭제

~/folder:
  - x1
  - x2

~/folder2:
  - genericname1.tar.gz:
    - ...
  - genericname2.tar.gz:
    - y1
    - y2

답변1

다음과 같은 스크립트를 실행할 수 있습니다(GNU tar또는무료 아카이브bsdtar):

find . -type f -mtime +28 -print0 | tar -czvf backup.tar.gz --null -T -

또는 logrotate를 사용하여 시작하세요(권장). 사용자 정의 구성 파일을 /etc/logrotate.d/yourfile샘플 파일에 배치합니다.

/var/log/news/news.crit {
    monthly
    rotate 2
    olddir /var/log/news/old
    missingok
    postrotate
    kill -HUP ‘cat /var/run/inn.pid‘
    endscript
    nocompress
}

모든 logrotate 구성 옵션에 대한 자세한 정보를 볼 수 있습니다.여기

관련 정보