![28일이 지난 디렉터리의 모든 파일을 tar-gz하려면 어떻게 해야 합니까?](https://linux55.com/image/103239/28%EC%9D%BC%EC%9D%B4%20%EC%A7%80%EB%82%9C%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%9D%98%20%EB%AA%A8%EB%93%A0%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20tar-gz%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
매일 폴더의 로그 파일을 삭제합니다.
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 구성 옵션에 대한 자세한 정보를 볼 수 있습니다.여기