もしもに備えてMacをバックアップする
災害は忘れたころにやってくる、その時は突然訪れました。
いつものように、出社してMacbookを起動すると・・・
Dockのアプリがすべて ?
になっていて、PCを交換することに。。。
このような状態なので、データ移行も出来ず、0からセットアップしなければならず、かなりの時間を費やしました。
そこで、また明日やってくるかもしれない「もしも」に備えて、(出来るだけ)自動かつ低コストでMacをバックアップする方法をまとめました!
方針
- アプリは、Homebrewで管理して、Brewfileをバックアップする
- 設定ファイル等は、シンボリックリンクを設置して、実ファイルをバックアップする
バックアップというと、 Time Machine
が簡単だと思いますが、別にHDDが必要なこともあり、会社でやるのは現実的ではないため、見送りました。
また、この方法だと、プライベート用、仕事用など複数のMacを使っていても環境を同期することが出来るのがメリットです。
バックアップ
バックアップ用ディレクトリを作って、そこにいろいろ突っ込んでいきます。
あとはそのディレクトリをDropBoxやGoogleDrive、Git等で同期しておけばOKです。
$ mkdir ~/backup
事前準備
Homebrewをインストールします。
$ usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ⋮ ==> Installation successful! $ brew doctor Your system is ready to brew.
アプリ
Homebrewでアプリを管理するために、mas-cli、Homebrew-Caskをインストールします。
# mas-cli $ brew install mas # Homebrew-Cask $ brew tap caskroom/cask $ brew tap caskroom/versions
Homebrewでインストールした パッケージ(アプリ)のリスト、Brewfile( ~/Brewfile
)を作成します。
※App Storeでインストールしたアプリは含まれます。
$ brew bundle dump --force
設定ファイル等
アプリの設定ファイル等は、実ファイルをバックアップ用ディレクトリに移動し、ファイルがあったディレクトリにシンボリックリンクを作成します。
# .configをbackupに移動 $ mv ~/.config ~/backup/.config # 設定ファイルがあったディレクトリにシンボリックリンクを作成 $ ln -s ~/backup/.config ~/
ただ、アプリごとに都度この作業をするのは面倒くさいので、ツールに任せちゃいましょう。 Mackup は、この作業を簡単に実行できる便利なヤツです。
$ brew install mackup
ということで、Mackupに対応しているアプリの設定ファイルは、Mackupでバックアップします。
Dropbox等のクラウドストレージを使うことも出来ますが、今回は、いろいろまるっとバックアップしたいので、 file_system
を使います。
# Mackupの設定ファイルを編集 $ vi ~/.mackup.cfg [storage] engine = file_system path = backup directory = Mackup [applications_to_sync] ssh ⋮ # 設定ファイルをバックアップ $ mackup backup --force
定期実行
バックアップ作業を定期的に実行することで、常に最新の状態を保てるようにします。
launchdを使って、毎日19時に実行するように設定しています。
# 設定ファイル $ vi ~/Library/LaunchAgents/backup.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>backup</string> <key>ProgramArguments</key> <array> <string>/bin/bash</string> <string>/Users/you/backup/backup.sh</string> </array> <key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>19</integer> <key>Minute</key> <integer>0</integer> </dict> </dict> </plist> # 登録 $ launchctl load ~/Library/LaunchAgents/backup.plist # 確認 $ launchctl list | grep backup
復元
バックアップしたフォルダを復元先のPCに設置します。
事前準備
バックアップと同様に、まずは、Homebrewをインストールしましょう。
アプリ
Brewfileからパッケージ(アプリ)をインストールします。
# Brewfileのシンボリックリンクを作成 $ ln -s ~/backup/Brewfile ~/ $ brew bundle
設定ファイル等
Mackupに対応しているアプリの設定ファイルは、Mackupで復元します。
$ mackup restore --force
Mackupに対応していないアプリの設定ファイル、その他ファイル・ディレクトリは、規定のディレクトリにシンボリックリンクを作成します。
最後に
ここまで、アプリと設定ファイル等については、最低限のバックアップ&復元が出来ました。
簡単ですね、お金かかりませんね、これでいつ「もしも」がやってきても大丈夫です!