google tag

My Soundcloud Channel --- Testing :D

Monday, October 02, 2006

今日のrsyncで単純バックアップ

Linux メモ...

/home以下を 別のバックアップドライブにコピーするというものぐさバックアップ。でも cpコマンドで /home以下まるまるなんて、総データ量が大きいから大変時間がかかる。 これを毎回行うのはちょっとアホらしい。cpコマンドでスナップショット的に毎回丸々別名で保存してそれを残す事に意味がない訳ではないのだけれど、そんな事するとディスクがいくつあっても足りなくなる。どうせいい加減なバックアップなんだから、時々、その時点で前との 変化分だけ前回からupdateすればいいんだけどどうすれば...

という事で調べてみると rsyncを使うのが簡単そうなのでやってみた。
rsyncはネットワーク越しにマシン間のファイルの同期を取るって使いかたが王道みたいだけれど、同じマシン内のディレクトリー間の同期を取るのにも、もちろん使える。cpと違うのはディレクトリー間のファイルを比較して同期を取るべく差のあるデータのみupdateする事になるから 二回目以降のバックアップ時間が早い。 rsyncって名前はリモートで syncするって意味なのかな。要するにsyncの専用コマンドだからお気楽丸コピーバックアップにちょうど良い。

と言う事で今後rsyncでバックアップを取ってみようと思うのだが、決まった場所の定期バックアップなので間違わない様にワンコマンドで走る様にへっぽこスクリプトにしてみたので自分のために (何したのかすぐ忘れるから....) メモしておく。

#!/bin/sh

backup_date=backup_home_`date +%b_%d_%Y`
echo
echo "Back up /home to /mnt/backup/backup_home ...."
echo
rsync -av /home /mnt/backup/backup_home |tee /mnt/backup/$backup_date.log
echo
ls -l /mnt/backup
echo
echo ".... backup done."
echo


一応logが残る様にしたけれど、というかlogの内容なんかどうでもよいけれど、前回何時取ったのかlogファイル名を日付にして残すという意味。なんかとってもヘッポコだけど。

まぁ、なにもしないよりはマシ、程度なやりかただけど、バックアップを本格的にやりだしたら手に負えないし、そこまで厳密にする程重大なデータもないし。