타임머신 백업을 일부 혹은 전부 삭제하는 방법 | macOS

macOS를 모하비(Majave)로 올리고 난 뒤 얼마 후 타임머신 백업이 계속 실패하는 현상이 발생 했습니다. 당시 2TB 외장하드를 타임머신 백업용으로 세팅해서 수 년 간 아무 문제 없이 잘 써 왔었기 때문에 좀 이상하다는 점을 느꼈습니다. 이 글은 이 문제를 해결하기 위한 내용을 다룹니다.

구글신께 빌어서 문제의 원인을 찾아봤지만 일단 원인 자체를 파악하는 것은 좀 어려울 것으로 보입니다. 맥의 타임머신은 백업 공간이 부족해질 경우 알아서 오래된 백업을 지운다고 하기 때문입니다.

타임머신의 백업은 변화분 즉 최초 완전한 백업부터 시작해서 새로 만들거나 수정하거나 삭제한 것 만큼의 변화되는 내용만을 지속적으로 백업해 갑니다. 그래서 각 파일 단위로 여러 날짜 단위(스냅샷)로 복원을 할 수 있습니다. 그리고 오래동안 백업을 해도 차지하는 용량은 생각보다 적은 편이지요.

파인더로 타임머신 백업 디스크를 살펴보면 이렇게 생겼습니다. 사용하는 맥의 퓨전드라이브가 1TB인 것을 생각해보면 1년 이상의 백업이 차지하는 용량은 적은 편이라고 볼 수 있지요.

이 변화를 기록하는 타임머신의 특성 상 오래된 백업을 삭제하는 기준이 당연히 쉬울리가 없습니다. 그래서 간간히 이런 오류가 발생 할 수도 있나봅니다.

뭐 어쨌거나 타임머신의 자동으로 삭제하는 기능이 정상 동작하지 않는다는 것은 확실하게 파악 했습니다. 그렇기에 수동으로 오래된 백업을 강제로 지우는 방법을 찾아 봤습니다.

타임머신용 도구로 터미널 유틸리티인 tmutil 이라는 것이 있습니다. tmutil 의 tm 은 아마도 Time Machine 의 약자로 생각됩니다. 이름 그대로 타임머신 유틸리티이지요. 이 유틸리티를 이용해 봅시다.

터미널에서 tmutil 을 이용해 아래 처럼 listbackups 명령을 내려보면 각 백업 폴더(디렉토리)를 볼 수 있습니다.
$ tmutil listbackups

위 스크린샷은 실제 실행 결과인데 처음 게시한 파인더 스크린샷과 동일한 내용을 볼 수 있습니다. 물론 약간의 차이는 있지만 이는 시험삼아 삭제하고 난 뒤에 스크린샷을 다시 찍은터라 달라보이는 것일 뿐입니다.

각 백업을 지우기 위해서는 delete 명령을 이용 할 수 있습니다.
$ sudo tmutil delete /path/to/each/backup/directory
sudo가 붙었기 때문에 관리자 권한이 있는 사용자의 패스워드를 요구하는 커맨드입니다. delete 뒤에 붙은 경로는 앞서 listbackups 에서 나온 각 라인에 해당하는 경로입니다. 이 커맨드를 이용하면 오래된 각각의 백업을 날짜 단위로 삭제 할 수 있습니다. 다만 경로 입력 시 공백 등 특수문자는 그대로 입력 할 경우 에러가 나니 탭 키를 이용한 자동완성을 적극적으로 이용해 봅시다.

만약 타임머신 백업디스크를 외장디스크로 설정했다면 아마도 오류가 발생할 것입니다. 해당 디렉토리에 접근 권한이 없다면서 말입니다.

만약 이런 권한 문제가 발생한다면 터미널이 해당 디렉토리를 접근 할 수 있게 설정해야 합니다. macOS의 환경설정(Preferences) - Security & Privacy - Full Disk Access 항목에 사용하려는 터미널 앱을 등록하면 됩니다.

이렇게 하면 백업이 있는 디렉토리를 액세스 할 수 있게 되고 delete 명령으로 삭제 할 수도 있게 됩니다. 참고로 삭제하는 시간은 그냥 파일을 삭제하는 것에 비하면 굉장히 오래(?) 걸립니다.

아니면 아예 백업을 통째로 지워버릴 수도 있습니다. listbackups 명령으로 구한 각 백업들의 상위 디렉토리를 delete 명령으로 지워버리면 모든 백업이 삭제됩니다.
참고로 위에서 imacmini 라는 이름은 제 맥의 이름입니다. iMac Mini 라는 장난 표현이지요. 비슷하게 "TM HDD" 라는 이름은 제 외장하드 이름일 뿐입니다. 따라서 위 경로는 사용자마자 제각각임을 알아둡시다. 어차피 listbackups 명령으로 제대로 된 경로를 알 수 있으니 걱정할 필요는 없습니다.

결과적으로 저는 귀찮아서 통채로 삭제를 시도했고 위 스크린샷은 그 증거입니다. 전체 삭제는 당연하게도 무지막지한 시간이 걸립니다. 그냥 하루 왠종일 삭제만 한다고 생각하는게 편합니다. :D
쉽게 하려면 그냥 설정(Preferences) - 타임머신에서 타임머신을 끄고 해당 하드를 포맷 한 뒤 다시 타임머신을 켜면 됩니다. 더 빠르고 단순하지요. 다만 이런 방법이 있다는 것만 봤었지 직접 확인해 보지는 않았습니다. ;-)
tmutil 은 이 외에도 기능이 참 많습니다. 궁금하시면 --help 명령으로 찾아봅시다.
$ tmutil --help
사족. 오랜만에 개발과 무관한(?) 내용을 쓰니 기분이 요상하네요 :D

댓글

이 블로그의 인기 게시물

버전(Version)을 제대로 이해하기

소수점 제거 함수 삼총사 ceil(), floor(), round()