QNAPの外付けディスクに日次差分バックアップ

最近1ドライブのQNAP(TS-121)を使ってるんだけど、やっぱりバックアップしないと恐いので、USBの外付けディスクをつけてバックアップすることに。

QNAPのミラー機能はなんかよくわからないしいまいち信用できないので、rsync を仕込んでみた。

ssh で QNAP に admin でログインして、rsync で対象ディレクトリ(Multimedia, Public, homes)をバックアップ。

# mkdir -p /share/external/sdr1/2017/10/15/
# cd /share/HDA_DATA
# rsync -a --exclude=@\* --exclude=.@__thumb/ Multimedia Public homes /share/external/sdr1/2017/10/15/

rsync が終わったら、crontab -e /etc/config/crontab に次の行を追加(crontab -e の設定は消えてしまうらしい):

50 23 * * * yesterday=$(date -dyesterday +%Y/%m/%d); today=$(date +%Y/%m/%d); mkdir -p /share/external/sdr1//$today; cd /share/HDA_DATA; rsync -a --exclude=@\* --exclude=.@__thumb/ --link-dest=../../../$yesterday/  Multimedia Public homes /share/external/sdr1/$today/

これで外付けディスクに、YYYY/MM/DD 形式で日次バックアップが取れる…はず。ファイルサイズと日付が変わってない場合はファイルの実体はハードリンクになるので、ディスク容量を食わない。

と言っても、ディレクトリはリンクというわけにはいかないので、まったくファイルに変更が無くても徐々に容量は減っていく。まあ足りなくなったら古いバックアップを手で消せばいいかなーと思ってたり。