우리는 매우 일반적인 문제에 직면해 있다고 확신합니다. 우리는 매일 백업을 수행하여 파일 이름에 날짜가 포함된 압축된 아카이브 파일을 생성하지만 모든 파일을 영원히 보관하고 싶지 않습니다.
너무 이상하다고 생각되지 않는 몇 가지 요구 사항은 다음과 같습니다.
- 마지막 X개의 백업/일을 제외하고 모두 삭제
- 일요일 백업을 유지하세요
- 매월 마지막 백업을 유지
- 최신 백업의 크기가 0이거나 마지막 백업보다 50% 이상 크거나 작은 경우 누군가에게 알립니다.
Google에서 검색해 보았지만 수천 개의 스크립트만 찾았으며 그 중 상당수에는 눈에 띄는 문제와 버그가 있었습니다. 잘 테스트되고 커뮤니티가 있는 이 문제에 대한 '적절한' 해결책은 없습니까? 유지 관리되지 않거나 버그 수정을 받지 않고 언젠가는 모든 백업을 먹어치울 SO 또는 SU의 스크립트를 복사하여 붙여넣어야 합니까?
답변1
GFS(할아버지-아버지-아들) 보존 방법이 아마도 여기에 좋은 대답일 것입니다. @ivanivan이 언급한 것처럼 적절한 시기의 크론과 결합하십시오.
기본적으로 매일, 매주, 매월 백업을 수행합니다(크론이 이를 제어합니다).
그런 다음 보존 정책을 결정할 수 있습니다.
- 일일 백업은 일반적으로 최소 1주 동안 보관됩니다(때때로 2~3주 정도).
- 주간 백업은 일반적으로 5주 동안 보관됩니다(그러나 최대 8주까지 가능).
- 월별 백업은 일반적으로 6개월 또는 12개월 동안 보관됩니다(매년/반기 백업에 따라 다름).
- 연간/반기별 백업도 수행할 수 있지만 회계 또는 로그를 유지해야 하는 경우에만 유용할 수 있습니다.
그런 다음 크론은 정책 창 외부에 있는 이전 아카이브도 지웁니다.
Ivanivan이 제안한 것처럼 :
귀하의 문제는 상대적으로 간단한 쉘 스크립트 세트와 cron 작업으로 해결될 것 같습니다. 다른 사람의 상황에 맞는 스크립트를 검색하는 대신 Google에서 쉘 스크립트 수행 방법을 배우는 방법을 제안할 수도 있습니다.
bash 스크립팅을 살펴보고 싶을 수도 있습니다. 배우는 것이 좋습니다 :)