Mackup 사용법: 시스템 설정 파일(dotfiles) 백업 및 복원하기
들어가며
리눅스Linux나 맥OSmacOS 환경에서 프로그래밍을 하는 경우 $HOME
디렉터리 아래에 .
으로 시작하는 많은 설정 파일들이 만들어집니다. 이 파일들을 운영체제에서 기본적으로 보이지 않도록 숨겨줍니다. 이름이 점으로 시작해서 닷파일dotfiles라고도 부릅니다.
이 파일들을 보려면 맥OS 파인더 기준 ⌘ + ⇧ + . 단축키를 입력합니다. 커맨드라인에서는 ls
를 -a
옵션과 함께 실행하면 보입니다.

GitHub에서 자주 보이는 dotfiles 저장소들도 자신의 설정파일을 관리하기 위한 용도로 사용되곤합니다. 이 파일들을 직접 관리하는 것도 방법입니다만, 단순히 주요 닷파일을 백업, 복원만 하고 싶은 경우 Mackup을 사용해 문제를 좀 더 쉽게 해결할 수 있습니다.
맥업(Mcakup) 설치
맥OS에서는 홈브류Homebrew를 사용해 손쉽게 맥업을 설치할 수 있습니다. 맥업은 파이썬 기반으로 리눅스에서는 pip
를 통해서 설치할 수 있습니다. 자세한 내용은 공식 저장소의 README를 참고해주세요.
$ brew install mackup
명령어를 실행해 설치가 잘 되었는지 확인해봅니다.
$ mackup --version
Mackup 0.8.29
맥업 설정하기
맥업을 사용하기에 앞서 먼저 설정 파일을 만들어주는 게 좋습니다. 맥업의 설정 파일은 ~/.mackup.cfg
에 생성합니다. 다음 내용을 추가해줍니다.
[storage]
engine = dropbox
여기서는 명시적으로 스토리지를 지정했는데, 맥업의 기본 스토리지는 드롭박스이므로 드롭박스를 사용한다면 작성하지 않아도 무방합니다. 이외에 구글 드라이브Google Drive, 아이클라우드iCloud를 백엔드로 사용할 수도 있습니다. 파일 시스템을 사용해 임의의 디렉터리에 저장하는 것도 가능합니다. 이에 대해서는 공식 문서를 참고해주세요.
[storage]
engine = google_drive # or icloud
스토리지를 정했으면 이제 백업할 애플리케이셔을 지정해야합니다. 지원하는 애플리케이션은 공식 저장소의 README나 mackup list
명령어로 확인해볼 수 있습니다.
$ mackup list
Supported applications:
- 1password-4
- 2do
- ack
- adium
...
각 애플리케이션들은 백업할 파일들의 정보를 담고 있습니다. 예를 들어 ssh
애플리케이션을 지정하면 backup
실행시 ~/.ssh/config
과 .ssh/authorized_keys
파일을 스토리지에 저장해줍니다.
[applications_to_sync]
ssh
각 애플리케이션에 대한 좀 더 자세한 정보는 show
서브 커맨드로 확인해볼 수 있습니다.
$ mackup show ssh
Name: SSH
Configuration files:
- .ssh/config
- .ssh/authorized_keys
백업할 애플리케이션은 [applications_to_sync]
섹션, 무시할 애플리케이션은 [applications_to_ignore]
섹션에 한 줄에 하나씩 작성해줍니다. 최종적인 설정 파일은 다음과 같습니다.
[storage]
engine = dropbox
[applications_to_sync]
ssh
[applications_to_ignore]
맥업 사용해서 설정 파일들 저장하기
설정이 끝났으면 이제 mackup backup
명령어로 설정 파일들을 스토리지에 저장해줍니다.
$ mackup backup
Mackup needs a directory to store your configuration files
Do you want to create it now? </Users/nacyot/Dropbox/Mackup> <Yes|No>Yes
Backing up .ssh/config ...
처음 실행하면 Dropbox
아래에 설정 파일 저장 디렉터리를 만들 것인지 물어봅니다. Yes
를 입력하면 .ssh/config
가 백업되는 것을 확인할 수 있습니다.
Mackup 프로젝트의 README에도 설명되어있습니다만, 동작 원리는 간단합니다. 원래 설정 파일을 스토리지에 복사하고, 삭제해줍니다. 그리고 스토리지에 있는 파일로 링크를 걸어줍니다. 확인해봅니다.
$ ls -al ~/Dropbox/Mackup/.ssh/config
-rw-------@ 1 nacyot staff 167 Jun 27 10:50 /Users/nacyot/Dropbox/Mackup/.ssh/config
$ ls -al ~/.ssh/config
lrwxr-xr-x 1 nacyot staff 40 Jun 27 10:50 /Users/nacyot/.ssh/config -> /Users/nacyot/Dropbox/Mackup/.ssh/config
커스텀 애플리케이션 정의
맥업의 애플리케이션 별 백업 파일은 다음과 같이 정의되어있습니다.
[application]
name = SSH
[configuration_files]
.ssh/config
.ssh/authorized_keys
이 내용은 맥업 공식 저장소에서도 확인할 수 있습니다. 간단하죠?
유명한 애플리케이션이라면 저장소에 직접 기여해보는 것도 방법이지만, 로컬에서 간단히 커스텀 애플리케이션을 추가해서 사용할 수 있습니다. .mackup/<APPLICATION_NAME>.cfg
파일에 위와 같은 형식으로 애플리케이션 정의 파일을 작성하면 됩니다. 예를 들어 direnv
전역 설정 파일 백업용으로 .mackup/direnv.cfg
을 만들어봅니다.
[application]
name = direnv
[configuration_files]
.direnvrc
이제 .mackup.cfg
파일에 direnv
를 추가해주고, mackup backup
을 실행합니다.
$ mackup backup
Mackup needs a directory to store your configuration files
Do you want to create it now? </Users/nacyot/Dropbox/Mackup> <Yes|No>Yes
Backing up .direnvrc ...
새롭게 정의한 .direnvrc
가 백업되는 것을 확인할 수 있습니다. mackup
애플리케이션을 백업 대상에 지정해두면, .mackup.cfg
와 .mackup
디렉터리에 있는 내용도 백업을 해줘서 편리합니다. (시스템 별로 다른 설정 내용을 사용하고자 한다면 mackup
애플리케이션을 백업 대상에 포함해서는 안 됩니다.)
설정 파일 복원하기
이제 다른 컴퓨터에서 설정파일들을 복원하려면 다음 명령어를 실행합니다.
$ mackup restore
복원한 이후에는 드랍박스에 있는 내용을 링크해서 사용하기 때문에, 처음에 셋업한 컴퓨터나 새롭게 복원한 컴퓨터나 설정관리를 따로 해줄 필요는 없습니다.