こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

バックアップするためのコマンドについて

/以下全部のバックアップを取りたいと思っています。
ddが好きなので今までddを使ってパーティション全体のバックアップを取っていましたが、これだと時間がかかるためあまり頻繁に使いたくありません。
そこでddも使いますが、差分バックアップを取れる方法を試してみたいと思いました。
自分の知る差分バックアップの方法としてtar、dump、rsyncがありますが、どれが良いのでしょうか?

dumpについてある程度勉強しましたが、差分・増分のバックアップのとり方がrsyncと比べて難しいように思いました。

使い方としては一定回数起動(シャットダウン)したときに差分(増分)バックアップを自動で取るということをしたいです。(これについてはまだ勉強してませんがcronを使えばできるのでしょうか)

おすすめのコマンドはどれでしょうか?

投稿日時 - 2011-12-09 08:06:30

QNo.7179716

暇なときに回答ください

質問者が選んだベストアンサー

いろいろ 考え方がるのでしょうけど、
私は、10年ぐらい前まではテープデバイスにバックアップとってましたが、
HDDの容量がどんどん増えてきたのに比べて テープ容量はさして増えてこななっかったのと
HDD自体の容量あたりの価格が落ちてきて テープとコストが逆転したのと
バックアップ時のテープ交換の手間が不要になる という理由で 
遠隔ホストのHDDにrsyncでバックアップするようにしました。

遠隔のホストにしたのは、HDD故障に対応するだけでなく、火災や盗難にも備えるためです。
これを、cronに定義して、毎日 夜中に自動実行させてます。
バックアップ側の故障も考慮して、これを2箇所で行なってます。


なお、一定期間毎にバックアップ実行するのであれば、cronで定義しますが、
起動時のみにしたいというのなら、/etc/init.d/にシェルを用意して、
それを/etc/rc*.d/したにシンボリックリンクする形になるでしょう。
(一定回数起動時のみとなら、 カウンターファイルを作っておいて起動時にカウントアップし、 
 それが上限にきたら、バックアップ処理+カウンターファイルをクリアという
 シェルですかね)
ただし、 HDDへのバックアップなら、テープの交換など特別に手間が必要になるわけでもないので
起動時である必要はないので、cronのほうが設定は簡単です。


なお、rsyncの差分転送は、dumpでの差分バックアップや増分バックアップとちがって、
変更前のデータはバックアップとして残らないので、HDDの故障対策でなく、
ヒューマンエラー対策で 削除・変更したファイルの復活をさせたいこともあるならば
バックアップのディレクトリをローテーションするなり
rsyncするまえに前回から変更されたファイルをtar+gzipなどで
一定期間残しておく必要があります。


たとえば、

7日前まで残したいならディレクトリを7つ用意して、日替わりでrsync先のディレクトリを変更する。
(この場合、HDDの容量は7倍)(必要なファイルはftpで直に取り出せる)

とか

・バックアップ元で前回バックアップ時移行に更新・追加のあったファイルリストを生成
・バックアップ先で、そのファイルをバックアップディレクトリからtar+gzipファイルで確保
・上記のファイルをログローテーションの要領で、必要期間分確保するシェルを実行
・このあと、rsyncの差分転送でバックアップを最新状態にする
(過去ファイルはtarから取り出す)
って感じです。

投稿日時 - 2011-12-09 13:22:02

お礼

なるほど。
dumpのように変更前のデータを残すのにはそのような利点があるのですね。
rsyncのように遠隔のHDDに保存するのも良いですね。

ありがとうございました。

投稿日時 - 2011-12-09 17:00:32

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

Linuxを使っていたときは差分バックアップを手軽に取れるという点で自分はpdumpfsを使ってましたね。pdumpfsは日付ごとにバックアップディレクトリを作ってくれて、そこにメインのコピーが置かれます。前日と同じ内容のファイルはハードリンクにするので消費する容量は単純なコピーよりずっと少ないです。

ちなみに、遠隔地にバックアップを取りたい場合はpdumpfs-rsyncを使うと、ネットワークを経由した別のマシンに簡単にバックアップが作成できます。このとき、パスワードなしの暗号化鍵を作ることになると思いますが、authorized_keysでcmdパラメーターを使うと特定のコマンドしか実行できなくなるのでちょっとは安全です。

pdumpfsはある程度のユーザーが居る環境だと3ヶ月もするとかなりの容量を食ってくるので、pdumpfs-cleanで適当に間引いて容量を減らします。pdumpfs-cleanは何年前の1月1日、何ヶ月前の1日、何週間前の月曜日、何日前の4種類について設定をすることで、それよりも古い内容を削除します。変更されるファイルはだいたい頻繁に変更されるので、これだけでもかなり効果があります。


今はFreeBSD一本なので、ZFS rootにして、zfs sendで遠隔バックアップ、freebsd-snapshotで毎時スナップショットをとっています。お分かりの通り、前者はディスクが壊れた時のため、後者はユーザーがミスした時の為です。スナップショットがあるので、誤って重要なファイルを消した場合などはsnapshot visitすると他の方法より簡単に見つけられて、重宝しています。

投稿日時 - 2011-12-10 08:34:32

お礼

そのような方法もあるのですね。
参考になりました。

ありがとうございました

投稿日時 - 2011-12-13 10:56:17

あなたにオススメの質問