Raspberry Pi 【 rsync 】 の使い方
SDカードを "USBメモリ" に
定期・自動バックアップ
SDカードを "USBメモリ" に
定期・自動バックアップ
rsyncを使って nginx Webサーバー + WordPress を、USBアダプタにつけたマイクロSDカードに同期させることで、 定期・自動バックアップ 運用を実現。
スポンサー リンク
マイクロSDカードの書き換え寿命への完璧対策
SDカード/マイクロSDカードの書き換え寿命は1万回くらいらし。
バックアップ用のマイクロSDカードは、
1日1回バックアップを取った場合、
読み・書き・削除で、バックアップ1回につき3回として、
3回 x 365日 x 10年 = 10,950回 ➡ 10年は持つ。
さらに、約 4G の使用領域を、約 29G の領域にバックアップするので、
寿命は約 7倍。
70年は持つ。
SDカード/マイクロSDカードの書き換え寿命は1万回くらいらし。
バックアップ用のマイクロSDカードは、
1日1回バックアップを取った場合、
読み・書き・削除で、バックアップ1回につき3回として、
3回 x 365日 x 10年 = 10,950回 ➡ 10年は持つ。
さらに、約 4G の使用領域を、約 29G の領域にバックアップするので、
寿命は約 7倍。
70年は持つ。
目 次
1. マイクロSDカードのマウント
使用したUSBアダプタとマイクロSDカード。
ブート領域が、/dev/sda1 でマウント先が /media/usb0 になり、
/root 領域が、/dev/sda2 でマウント先が /media/usb1 になっている。
/root 領域が、/dev/sda2 でマウント先が /media/usb1 になっている。
USBアダプタをつけたマイクロSDカードが認識されない場合。
sudo apt-get install usbmount
USBに挿入したままリブートしなければ認識されない場合がある。
sudo reboot
df -h
df -h
※: USBアダプタが認識される状態の Raspberry Pi SDカードをベースにしないと、バックアップ後の(同期された)SDカードで起動したとき、USBアダプタが認識されない。・・・と言う、厄介なことになる。
参考:
2. rsync のインストール
Raspbian Buster with desktopの場合、すでに最新バージョン がインストールされている。
sudo apt-get install rsync
同期しない/同期してはいけないディレクトリを登録。
cd /
sudo nano rsync-exclude.txt
sudo nano rsync-exclude.txt
/proc/*
/sys/*
/dev/*
/boot/*
/tmp/*
/run/*
/mnt/*
/var/tmp/*
/var/log/*
/media/*
/sys/*
/dev/*
/boot/*
/tmp/*
/run/*
/mnt/*
/var/tmp/*
/var/log/*
/media/*
3. バックアップ用のマイクロSDカードを準備
①. Raspberry PiのSDカードを Win32DiskImager を使ってバックアップ。
②. バックアップ用のマイクロSDカードにバックアップした img をリストア。
③. もともとのSDカードをRaspberry Piに差し込んでRaspberry Piを起動。
④. USBアダプタにバックアップ用のマイクロSDカードをつけ、USBに装着。
・・・ この時のマウント先を確認 = /media/usb1
・・・ この時のマウント先を確認 = /media/usb1
4. Raspberry Pi を rsync で同期してみる
rsync を使って実際に同期してみる。
sudo rsync -aEv --delete-during --exclude-from=/rsync-exclude.txt / /media/usb1/
rsyncコマンドとオプション。
sudo rsync -aEv --delete-during --exclude-from=/rsync-exclude.txt / /media/usb1/
-a : アーカイブモード
-E : 実行可能属性を保持する
-v : コピーしているファイル名やバイト数などの情報を表示するイル名やバイト数などの情報を表示するト数などの情報を表示するの情報を表示する
rsync-exclude.txt の指定で、除外リストの読み込み。
/media/usb1/ でUSBメモリを指定。
/media/usb1/ でUSBメモリを指定。
正常に終了すると、次のようなメッセージが出て、完了。
sent 996,399,255 bytes received 1,309,730 bytes 500,732.24 bytes/sec
total size is 3,742,654,824 speedup is 3.75
total size is 3,742,654,824 speedup is 3.75
さらに、/media/usb1/ の中に rsync-exclude.txt が入っていれば同期ができている。
所要時間:32GBSDカード → 約2分
5. バックアップの実行を cron で自動化する
crontabを編集。
sudo crontab -e
7 5 * * * rsync -a --delete-during --exclude-from=/rsync-exclude.txt / /media/usb1/
上記例は、毎日・5時7分にバックアップを実行。
6. まとめ
挿す位置と順序。
USB-a が、
/dev の /sda1 と /sda2 になり、マウント位置が usb0 と usb1 に
USB-b が、
/dev の /sdb1 と /sdb2 になり、マウント位置が usb2 と usb3 に
なる。
1つ目は、USB-a に挿し、2つ目は、USB-b に挿す。
抜くときはこの逆にする。
/dev の /sda1 と /sda2 になり、マウント位置が usb0 と usb1 に
USB-b が、
/dev の /sdb1 と /sdb2 になり、マウント位置が usb2 と usb3 に
なる。
1つ目は、USB-a に挿し、2つ目は、USB-b に挿す。
抜くときはこの逆にする。
こうしないと、リブートでマウント位置が変わる。
参考:
以上。
(2017.04.30)
スポンサー リンク