rsync によるデータバックアップ

外付け HDD のデータを別の外付け HDD にバックアップを取る。
rsync
コマンドが使えそうなので、これを cron で定期実行するスクリプトを作成する。
流れ
- バックアップ用の HDD を接続する
- 指定のディレクトリにマウントする
- 同期先のディレクトリを作成しておく
- rsync のシェルスクリプトを作成する
- crontab を編集する
バックアップ用の HDD を接続する
今回は EC-PHU3W1 を使用する。 USB 分岐ハブに接続したら認識できなかったので、ラズパイに直接接続した。 青ランプが点灯したので OK。
指定のディレクトリにマウントする
以下を参考に実施する。
マウント先は /mnt/[シリアルNo.]
とした。
接続時に自動マウントされたことで「すでにマウントされている」というエラーが出る場合がある。
この場合は、接続前に /etc/fstab
を編集して、事前にマウント先を指定する必要がある。
UUID=<UUID> /mnt/[シリアルNo.] ntfs defaults 0 1
同期先のディレクトリを作成しておく
- 同期元:/mnt/hdd1/src/
- 同期先:/mnt/[シリアル No.]/dst/
rsync のシェルスクリプトを作成する
rsync オプション 同期元フォルダ 同期先フォルダ
のように記述する。
#!/usr/bin/env bash
rsync -av --log-file=/mnt/hdd1/log/rsync-`date +"%Y%m%d-%H%M"`.log /mnt/hdd1/src/ /mnt/[シリアルNo.]/dst/
ファイルに実行権限を付与する。
$ chmod a+x backup.sh
crontab を編集する
$ crontab -e
以下を追記する。
0 9 * * * /mnt/hdd1/backup.sh