文系卒のWebエンジニアの成長と備忘録
エンジニア経験を生かして発信するメディアサイト

Macのおすすめデータ復旧対策【常時バックアップのやり方も解説】

hard-disk

以前Twitterでこんなつぶやきが少しバズりました。
若干エンジニア向けではありますが、開発環境や必要なアプリケーションのインストールなどを自動でインストールするプログラムになります。

このプログラムを実行すると、記載してあるアプリケーションなどを簡単にインストールすることができるのですが、エンジニアだけではなく普段からMacを使用している人にもこのバックアップ方法が役に立つのでは?と思いこの記事を書いています。

エンジニアではない方向けにも分かるように書いたつもりなので、Macのバックアップ対策として参考にしていただければと思います。

Macのデータ復旧のやり方

fiber

Macを使用している人の一般的なデータ復旧(リカバリ)のやり方は、『TimeMachine』という機能を使用して、外部HDDなどにデータをバックアップしておく機能が一般的だと思います。
参考記事≫Time Machine で Mac をバックアップする
参考記事≫Mac Time Machine(タイムマシン)使い方・設定をご紹介!バックアップを取ろう!

ただまあやってみて分かるのですが、このバックアップ対策めっちゃ時間掛かるんですよ…

本当に全ての情報やアプリケーションなどを移行しようとするので、人によっては数百GBの内容を一気にバップアップ取ろうとするので24時間くらい使用して外部HDDにデータを保管します。

外部HDDの容量も馬鹿にならないですよね。
一般的に外部HDDの容量はPCのストレージ容量の2倍くらい必要と言われています。

✅PCのストレージが512GBだった場合
外部HDDの容量は1TBほど必要の計算

このくらいの外部HDDだと値段も安くはないです。
外部サイト≫ Transcend USB3.1 2.5インチ スリムポータブルHDD 1TB

本当に必要なアプリケーションや書類だけバックアップ取れば良いのではないか
無料で使用出来て外部HDD以外にもバックアップ方法がないのか

上記の考えをお持ちの方のために【Time Machine】以外でバックアップを常時取っておくやり方を書いていきます。

  • クラウド環境のオンラインストレージを使用する
  • GitHubを使用する【エンジニア向け】
  • 環境構築を自動化して対策しよう

クラウド環境のオンラインストレージを使用して常時バックアップを取る

現在、クラウド環境のオンラインストレージってめちゃくちゃ充実していて無料で使用できるものだけでも結構あります。一般的に使用されているのは以下ですかね。

  • iCloud
  • Dropbox
  • Google Drive
  • One Drive

他にも色々ありますが一般的なユーザーが使用しているのは上記かなと思います。僕もお世話になっています。
≫ 【2019年最新】オンラインストレージ13個を厳選比較

割とオンラインストレージって使用していない人が多いんですが、ぶっちゃけナンセンスです。機密事項の書類でない限り基本はオンラインストレージに上げておく事オススメします。

オンラインストレージを使用するメリット・デメリットは以下ですね。

オンラインストレージを使用するメリット

・データの所在地がオンライン上ににあるので、PC間のデータの同期が楽
・常にバックアップを取る必要がない

僕自身もそうですが、PCを複数を所有していて仕事上など使い分ける必要があるとき、書類などのデータがオンライン上にあるとPC間のデータの扱いに困りません。
仕事専用のPCでも開けますし、プライベート用のPCでも同じ書類を確認出来るので楽です。

また、基本データの所在地がオンライン上(クラウド上)にあるので最新の状態が保たれています。そのためバックアップを取っていなくて、データが数日前のもの…なんてこともありません。

オンラインストレージを使用するデメリット

・アカウントの失効時に閲覧出来ない場合がある
・アカウントが乗っ取られた場合に第三者に閲覧される恐れがある

オンラインストレージの最大のデメリットはアカウントなどを乗っ取られたり、ネットワークに侵入された場合などに第三者にデータを見られる、加工されるといったリスクがあることです。
※ぶっちゃけ、PC自体に侵入されたらどっちみち同じなんですが…

上記でも書いていますが、基本第三者に閲覧されて困るものはリスク管理として、オンライン上に置かない方が良いです。

個人情報が含むメモだったりは、PC内部のネットワークと切り離されてた場所に保存し、切り離されたファイルのみ外部HDDに移すと効果的です。
バックアップ時間も容量も節約出来ます。

GitHubを使用する【エンジニア向け】

エンジニアの人向けになりますが、開発をしていると基本的にはソースコードが自分のPC上にありますね。果たしてそのソースコードはバージョン管理がされていますか?

開発をしていて突然のPCクラッシュ....
自分が開発した部分のデータが消えた...

なんてことはないでしょうか?
僕は仕事中に一度やらかした事があります。\残業万歳/

こんな時に使用しておくものが、GitHubなどのバージョン管理システムですね。
使い方は以下の記事に書いています。
※GitHubの使い方
≫ 【プログラミング初心者向け】GitHubで行うチーム制作やコードレビュー

GitHubにソースコードを全て上げておくと、PCがクラッシュした際にもリポジトリをcloneしてきて同じ環境を構築してあげれば動きます。

最早、自分の中でルール化しておくと良いのですが、その日に作ったものはその日にcommit、pushするという癖を付けておくと基本的に誤差が0で復活が可能です。

静的ファイルはクラウド管理でも良い

サーバーサイドなどのプログラムには複雑なプログラムなどがある関係上難しいかもしれませんが、静的ファイル(HTMLやCSS)などのマークアップ言語で作成したものはクラウド管理でも良いと思います。

環境依存も起きませんし、僕は上げられるものは全て上げてしまっています。

環境構築を自動化して対策しよう

PCのクラッシュ対策のために時間を節約するために、環境構築を自動化するやり方があります。言ってしまえば必要なアプリケーションなどを全て自動でインストールする形です。

✅外部HDDのバックアップと何が違う?

外部HDDのバックアップはアプリケーションなども全て行ってくれますが、PC内全てのデータをバックアップに取ろうとするので、復旧にも時間が掛かります。

そのため、普段から使用しているアプリケーションだけ厳選して記載しプログラムで実行して自動で最初からインストールし直す点が異なります。

プログラムにはシェルスクリプトと言われるプログラムが必要になります。そしてMacの方はHomebrewを使用してそのためのツールをインストールする必要があります。

シェルスクリプトを書いていこう

シェルの細かい部分は今回一切解説しません。こういうのを実行すれば簡単に出来るのかー程度で大丈夫です。

また上部から全てコピペでOK!
※必須と書いているところまでは必要な記述です。
それ以降は任意で書き換えてしまってOK

#!/bin/shell

# homebrewのインストール
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

# xcodeをインストール
xcode-select --install

# 必要なソフトをインストールするためにcaskをインストール
brew install caskroom/cask/brew-cask

# ---- ここまで必須 ----
# 以降は任意で変更してください

# 開発環境
brew cask install vagrant
brew cask install virtualbox
brew cask install docker

# エディター
brew cask install sublime-text
brew cask install atom
brew cask install visual-studio-code

# ブラウザ
brew cask install google-chrome
brew cask install firefox

# キーボード設定(Mac用)
brew cask install karabiner
brew cask install shiftit

# その他アプリケーション
brew cask install sourcetree
brew cask install cyberduck
brew cask install sketch
brew cask install slack
brew cask install evernote
brew cask install skitch
brew cask install iterm2
brew cask install kindle
brew cask install postman
brew cask install google-drive
brew cask install mysqlworkbench
brew cask install prepros
brew cask install cheatsheet

# ツール系
brew install tree
brew install wget
brew install vim

上記のbrew install {application_name}の部分が任意のアプリケーション名のインストールが実行可能です。

brew cask install google-chromeはブラウザのChromeをインストールするという命令になります。

brew caskでアプリケーションを探す

以下のコマンドで自分のインストールしたいアプリケーションがあるかどうかを確認することが出来ます。

brew search {application_name} で探すことが可能です。

evernoteというアプリを探している場合

以下のように記述して出力されていれば、それはインストールが可能な事を表しています。

$ brew search evernote
==> Casks
evernote

上記のようにinstallという命令に変えれば実行可能です。

シェルスクリプトの使い方

このシェルスクリプトは上部からコピーした後、適当なファイルを作成してその中に貼り付けます。保存の際には拡張子を.shという拡張子にしてください。
ファイル名は適当にrun.shとかで良いと思います。

その保存したファイルをrun.shというファイルを以下のように実行します。
sh run.shというコマンドを打つと、上記でコピーした内容が全て上から順番に実行される形になります。

これをオンラインストレージ上に保存しておく、もしくはエンジニアの方であればGitHubに上げておくことでPCがクラッシュしても、以前のPCに入っていたアプリケーションをそのまま使用することが出来ます。

常に自分で出来るリスク対策を

risk management

今の時代、PCの内部ストレージのみにデータを常に保管しているということは少なくなってきたので割とデータ復旧などに手間を取ることは無くなってきましたね。

PCに限らず、特にiPhoneなどでは、iCloudの自動バックアップ機能を使用していればスマホを変えた時でもデータの移行が本当に楽ですよね。

全てのデータが復旧できるわけではない

クラウドとか使用すれば完璧にデータを復旧できるかと言われると実はそうではなくて、アプリ内部のデータ(LINEなど)は独自の復旧が必要なのでそこは注意です。

slackのように情報が全てアカウントに紐付いていると復旧作業も必要ないんですが、LINEのようなタイプは必ずアプリ内でLINE専用のバックアップストレージを使用して、バックアップを取る必要があります。

こういったものを忘れると結構痛い目を見ますね。

色々なツールが世にあるので是非使ってみてください。

\記事のシェアをお願いします!/