Linux系のバックアップ方法メモ
Linuxが動いているサーバのバックアップを取ろうとした時に考えたことのメモ.
差分とか定期的バックアップとかいった頭の良いことは他に書いてあるから,取り扱わない.
サクッとできるやつだけ.
あくまでメモだから,詳しい方法とかは割愛する.
状況
そのうちバックアップを取ろうと思っていたLinuxがある日突然壊れた.
幸いハードの故障だったからデータは無事だったが,今後を考えて一度バックアップを作ったほうが良いなと思った.
方法
cron
で定期的に取ったり,差分だけ取ったりとか色々あるみたいだが,難しいことを考えなければ以下の3つくらいか.
フルバックアップ
物理的な記憶装置に書いてあるデータを全部丸々コピー.
一番確実にデータを取得できる上に,複数パーティション・未使用領域といったデータも一緒に保存できるから,この時点で消してしまっているファイルとかも復旧できるのが強み.
おまけにそのままOSも起動できる(デュアルブートも).
欠点は1TBのバックアップには1TBの記憶装置が必要になること.例え9GBしか使っていなくても,問答無用で1TB必要.
安全にコストはつきものである.
具体的な方法としてはdd
コマンドかな.
$ dd if=/dev/sda of=backup bs=32M
ファイルシステムごとバックアップ
使っている領域だけをコピーする.
9GBのLinuxなら9GBだけの容量で済む.フルバックアップで悩ましかった問題を解決できる.
当然,未使用領域は保存されないから注意は必要.
フルバックアップの次に検討すると良さそう.
今回調べるまで知らなかったが,Ubuntuはext
シリーズで,CentOSはXFS
とファイルシステムが違う.
だから,使うツールも前者は$ e2image -ra -p /dev/sda1 /dev/sdb1
で後者は$ xfsdump -l0 - /dev/sda1 ./backup.fs
みたいになる.
CentOSは古いやつだとxfsdump
ではなく,xfs_copy
になるようだ.
自分のディストリに合ったやつを選ぶこと.
必要なやつだけまとめる
重要なファイルやディレクトリのみを保存する.
最も簡単かつ玄人向け.
一番容量が小さくなりやすい.
しかし,必要なファイルがわかる人でないと後で困る.
やり方はzip/tar/cp
なりで頑張る感じ.
厄介なことに,$ cp -r / /tmp/backup
とかやると特殊ファイル関係でエラーが出て時間を溶かすこともある.
シンプルな手法だからといって,作業量も少なくはいかないようだ(経験談).
/etc, /usr, /var, /home, /root
を中心に見ると良さそう.
おわり
とりあえずファイルシステムのバックアップを取ろうかな.