絖綛 N@i.jp  昨日:00044772
 今日:00038425
 総計:00090732
keywords
管理者専用
  Post   Add link   Control Panel 































新しいトピック
最新:03/21 19:08


新しいコメント
最新:07/28 16:47






管理人へMAIL

プライバシーポリシー

USBメモリでRAID 5を構築・rsyncでMacへバックアップ

rsyncを使ってMac側から吸い出す形でバックアップすることにしました


 RAIDアレイに"/"(ルート)を移したRaspberry Pi 3。耐故障性は向上したものの「RAIDはバックアップにあらず」ですから、定期的なバックアップは必要です。
 今までは、Raspberry Piを電源オフにしてMicroSDカードを抜き、Macでddコマンドを使ってバックアップしていました。これが結構時間かかるし、面倒臭い。そこで今後はMac側で rsyncを使い、Raspberry Pi 3 のファイルをリモートコピーする形でバックアップするようにしてみました。手順は、公開鍵認証でsshログインできるようにしておくのが増えた程度で、MicroSDへバックアップしたのと、それほど変わりません。

  1. Raspberry Pi 3 の rootユーザに公開鍵認証で sshログインできるようにする
  2. バックアップ先(HDD、ディレクトリ)を決める
  3. バックアップ除外ファイルリストを作成
  4. バックアップスクリプトを作成
  5. root権限でバックアップスクリプトを実行

1. Raspberry Pi 3 の rootユーザに公開鍵認証で sshログインできるようにする

 Macから Raspberry Pi 3 の rootユーザにパスワード入力なしで sshログインできるようにしておきます。具体的な方法は検索すればいっぱい見つかると思いますが、要は自分(Mac)で公開鍵を作り、これを Raspberry Pi 3 の rootに渡しておき、この公開鍵を使って通信してねという設定をしておくことになります。

1) 先ずMac側で秘密鍵と公開鍵を作ります。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/hoge/.ssh/id_rsa):    ※秘密鍵を作る場所。そのままEnter
Created directory '/Users/hoge/.ssh'.
Enter passphrase (empty for no passphrase):    ※任意のパスワードを入力。今回は入力せずEnter
Enter same passphrase again:    ※上と同じパスワードを入力。何も入力せずEnter
Your identification has been saved in /Users/hoge/.ssh/id_rsa.
Your public key has been saved in /Users/hoge/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ljhJ5ERJT7bDP60QeuUdqMUUO5+hL+5KF8W3LDZ/zog hoge@MacPro.local
The key's randomart image is:
+---[RSA 2048]----+
|    . oB+.+oo+=o.|
|     +.oo. +.+oo=|
|    o = .   . o.*|
|   . B   .   + =.|
|    + o S . . = .|
|     = . .   . +.|
|    o +     ..o+.|
|     .      E.. o|
|                 |
+----[SHA256]-----+

これで"~/.ssh"配下に秘密鍵"id_rsa"、公開鍵"id_rsa.pub"が作られました。

$ ls -la .ssh
-rw-------   1 hoge  staff  1766 10 12 10:18 id_rsa
-rw-r--r--   1 hoge  staff   397 10 12 10:18 id_rsa.pub

2) 公開鍵を Raspberry Pi 3 にコピーします。

$ scp .ssh/id_rsa.pub root@RaspberryPi3:
root@RaspberryPi3's password:    ※RaspberryPi3のrootパスワードを入力
id_rsa.pub               100%  391     0.4KB/s   00:00

3) Raspberry Pi 3側で公開鍵をauthorized_keysに設定
 今度は Raspberry Pi 3側での作業です。先ず Raspberry Pi に rootでログインしてから、"/root/.ssh/authorized_keys"を作ります。

# mkdir /root/.ssh    ※/root/.sshディレクトリが無い場合は作成。既にある場合は不要。
# cd /root/.ssh
# cat ../id_rsa.pub >>authorized_keys
# chmod 600 authorized_keys
# rm /root/id_rsa.pub

4) Mac側から sshログインしてみる
 これで準備が整いましたので、Macから Raspberry Pi 3に rootで sshログインしてみます。

$ ssh root@RaspberryPi3

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Oct 12 10:27:32 2016 from MacPro
root@RaspberryPi3:~# 

こんな具合に、パスワードを入力することなく rootでログインできたら、公開鍵認証でのログイン成功です。確認できたら Raspberry Pi 3 からログアウトします。

2. バックアップ先を(HDD、ディレクトリ)決める

 バックアップ先のHDDDは、当然ですがバックアップに必要な空き容量(最低8GB)が必要ですね。RAIDアレイの内容もバックアップするなら、数百GB程度の空き容量が必要になります。またS.M.A.R.T.情報に異常がなく、比較的新しいHDDが好ましいです。(バックアップが先に壊れたら意味ないし)
 今回は Mac Pro に内蔵してある4TB HDD("/Volumes/Ext4TB")にしました。ここにRaspberry Piのファイルを保存するディレクトリ("RaspberryPi3-Backup"を作成します。

# cd /Volumes/Ext4TB
# mkdir RaspberryPi3-Backup

3. バックアップ除外ファイルリストを作成

 rsyncでバックアップさせない(してはいけない)除外ファイルのリストを作成します。ファイル名は、今回も同じ "exclude.txt"としました。内容は、以下のような感じ。

/proc/*
/sys/*
/dev/*
/tmp/*
/run/*
/mnt/*
/var/tmp/*
/var/log/*
.Apple*
.fseventsd
.DS_Store
.Trashes

今回はRaspberry Pi 3のファイルを全部吸い出すので、"/boot", "/media"を除外リストには入れません。

4. バックアップスクリプトを作成

 Raspberry Pi 3のファイルをrsyncでコピーを行うスクリプトファイル("pi-backup.sh")を作成します。スクリプトの内容は、

#!/bin/sh

SRC_DIR="root@RaspberryPi3:/"
DEST_DIR="/Volumes/Ext4TB/RaspberryPi3-Backup"
EXCLUDE="/Volumes/Ext4TB/exclude.txt"

rsync -auvz --delete -e "ssh -i /Users/hoge/.ssh/id_rsa" --exclude-from=${EXCLUDE} ${SRC_DIR} ${DEST_DIR}

こんな感じ。rsync のオプションで sshを使用してリモートログインするよう指定しています。公開鍵認証でログインできるようにしてありますので、実行の度にパスワードを訊かれることはないはずです。

5. root権限でバックアップスクリプトを実行

 作成したスクリプト"pi-backup.sh"に実行権を付けて、root権限で実行します。

$ chmod +x pi-backup.sh
$ sudo ./pi-backup.sh
Password:    ※Macのrootパスワードを入力
receiving file list ...
〜略〜
sent 1759689 bytes  received 135511232 bytes  1242270.78 bytes/sec
total size is 4739346095  speedup is 34.53

こんな具合に rsyncが終了すればバックアップ完了です。初回は全部を吸い出すので、ある程度時間がかかりますが、2回目以降は差分のみのバックアップになりますので短時間で終わるようになるはずです。


< 過去の記事 [ 10月の 全てのカテゴリ リスト ] 新しい記事 >

2016 calendar
10月
1
2345678
9101112131415
16171819202122
23242526272829
3031


掲示板
最新:08/15 17:19


GsBlog was developed by GUSTAV, Copyright(C) 2003, Web Application Factory All Rights Reserved.