2010年6月9日水曜日

バックアップを行うスクリプト

極めて単純なスクリプトで、機能はコピーするだけです。一応マウントとアンマウントを記述して、バックアップ作業以外の時はマウントしておかないように設定しています。応用すれば外部のUSB接続HDDに対してデータをコピーするように設定できます。

差分を利用した世代管理とかは無視。そのかわり完全なコピーなのでHDDが死んでも即復旧できます。また重要なファイルを誤って削除したときにはこのスクリプトをベースにして元に戻すことが可能です(とはいっても複雑ではなくrsyncのコピー元とコピー先をひっくり返すだけ)。

ところでバックアップは定期的に行う(例えば毎日)べきです。アップデートも毎日行うべきなので同じスクリプトにまとめてしまいます。これをcronで自動実行するようにしておけば、毎日アップデートとバックアップを実行してくれます。cronのやりかたはまたそのうち。

#ここではコピー元が/originaldataで、コピー先は/backupdataとする。
#またバックアップ先のデバイスは sde1とする(個々の環境で異なる)。
#なお接続しているデバイス名はfdisk -lで検索できる。

—スクリプト例—
#!/bin/sh
echo "UPDATE"
   yum -y update
echo "start sync"
   mount /dev/sde1 /backupdata
   rsync -a --delete /originaldata/ /backupbackup/
   umount /dev/sde1
echo "END"
—スクリプト例おわり—

echoは画面に文字を表示できます。これにより不具合が出たときどこまでコマンドが実行されたかを検証できます。あとアップデートで時間を食っているのか、同期に時間が掛かっているかも確認できます。それに意味があるかどうかを問うてはなりません。

0 件のコメント: