Raspberry Piでファイルサーバ、Part4 外付けハードディスクのバックアップ編

Part2でRaspberry Piに外付けハードディスクをつなげてファイルサーバーにしました。
今回はそのハードディスクのデータをバックアップするためにもう1台外付けハードディスクを導入します。


バックアップ用の外付けHDDを用意する

家に転がっていた日立の3.5インチ内蔵型HDD(250GB)にHDDケースに入れて外付けHDDにします。

玄人志向 3.5型HDDケース SATA接続 USB2.0対応 GW3.5AA-SUP/MB
玄人志向 3.5型HDDケース SATA接続 電源連動 USB2.0対応 マットブラック GW3.5AA-SUP/MB

余分なHDDがない場合は、2.5インチの内臓型のHDDが省エネなのでお勧めです。

2.5インチのHDDなんかの説明は下記に記載しています。
Raspberry Piでファイルサーバ、Part2 外付けハードディスクの導入編

バックアップ用のHDDの設定

HDDのフォーマットの最後のところまで導入編と同じやりかたです。フォーマットの仕方がわからない場合は、そこを見ましょう。

ここではfstabの設定から開始します。

バックアップ用の外付けHDDをRaspberry Piにつないでいる状態から
df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          7.4G  2.7G  4.4G  39% /
/dev/root       7.4G  2.7G  4.4G  39% /
devtmpfs        239M     0  239M   0% /dev
tmpfs            49M  580K   48M   2% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/sda1       7.5G   79M  7.4G   2% /media/usb0
/dev/sdb1       294G   63M  279G   1% /media/hdd1
tmpfs            97M     0   97M   0% /run/shm
/dev/mmcblk0p1   56M  9.7M   47M  18% /boot
tmpfs            32M     0   32M   0% /tmp
tmpfs            16M     0   16M   0% /var/tmp
tmpfs            32M  5.8M   27M  18% /var/log
/dev/sdc1       230G   60M  218G   1% /media/usb1
/dev/sdc1がバックアップ用の外付けHDDになります。Raspberry PiのUSBにつなげたら自動的に認識しました。

ハードディスクのUUIDを調べます。
sudo blkid /dev/sdc1
/dev/sdc1: UUID="94e9f53e-66f8-46e1-ad51-7f762ec38200" TYPE="ext4"

このUUIDをfstabに追加します。
sudo vim /etc/fstab

UUID=94e9f53e-66f8-46e1-ad51-7f762ec38200  /media/hdd2           ext4    defaults          0       0

#fstabを保存してhdd2フォルダを作成する
sudo mkdir /media/hdd2
これでリブートすると、新しくつけた外付けHDDが/media/hdd2にマウントするようになります。

現在の構成
df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          7.4G  2.7G  4.4G  39% /
/dev/root       7.4G  2.7G  4.4G  39% /
devtmpfs        239M     0  239M   0% /dev
tmpfs            49M  400K   49M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/sdb1       7.5G   79M  7.4G   2% /media/usb0
/dev/sda1       230G   60M  218G   1% /media/hdd2
/dev/sdc1       294G   63M  279G   1% /media/hdd1
tmpfs            97M     0   97M   0% /run/shm
/dev/mmcblk0p1   56M  9.7M   47M  18% /boot
tmpfs            32M     0   32M   0% /tmp
tmpfs            16M     0   16M   0% /var/tmp
tmpfs            32M  104K   32M   1% /var/log
HDDをつける順番でsda1、sdb1、sdc1が変更されます。でもUUIDで設定してあるのでマウントするところは決まっているので問題にはなりません。

定期的に全部バックアップするための設定

hdd1の中身全部をhdd2に定期的にバックアップします。
hdd2の容量が218GBなので、バックアップできる容量も218GBまでになります。

rsyncを使ってバックアップをします。
sudo rsync -av --delete /media/hdd1/ /media/hdd2/

sending incremental file list
./
samba/
samba/public/
samba/public/test.txt
samba/public/GoogleDrive/

sent 197 bytes  received 46 bytes  486.00 bytes/sec
total size is 4  speedup is 0.02
hdd2ディレクトリを見たら、ちゃんとバックアップが取れてました。

試しにhdd1にあるtest.txtを削除してバックアップしてみます。
sudo rm -rf /media/hdd1/samba/public/test.txt

sudo rsync -av --delete /media/hdd1/ /media/hdd2/
sending incremental file list
samba/public/
deleting samba/public/test.txt

sent 119 bytes  received 18 bytes  274.00 bytes/sec
total size is 0  speedup is 0.00
hdd2のtest.txtもちゃんと削除されていました。

HDD全体をバックアップできて、削除したファイルもバックアップ先で削除されることを確認できました。最後にcrontabにrsyncを設定して、定期的にバックアップするように設定します。
sudo crontab -e

0 17 * * * rsync -a --delete /media/hdd1/ /media/hdd2/
17時にバックアップを取れというcrontabの設定ですが、私のRaspberry Piは時差が9時間あるので、実際は真夜中の午前2時にバックアップが開始されます。

今さらですが、時間設定が紛らわしいので日本時間になるようにRaspberry Piを設定します。
sudo dpkg-reconfigure tzdata

Current default time zone: 'Asia/Tokyo'
Local time is now:      Wed Nov  5 17:00:51 JST 2014.
Universal Time is now:  Wed Nov  5 08:00:51 UTC 2014.
Asiaの中にTokyoがあるのでそれを設定しました。(参考:RaspberryPiのタイムゾーンを日本時間に設定する)

タイムゾーンを変えたのでcrontabで設定した時刻を日本時間に変更します。
sudo crontab -e

0 2 * * * rsync -a --delete /media/hdd1/ /media/hdd2/
最後にリブートしてcrontabに変更したタイムゾーンが反映されるようにします。

これで毎日夜中の2時にハードディスクをバックアップしてくれます。
以上で外付けハードディスクの丸ごとバックアップのほう完了です。

ちなみにバックアップ用の外付けハードディスクですが、
基本的に少しの時間しか動かないので熱対策はしていません。

コメントを残す

メールアドレスが公開されることはありません。