• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バックアップするためのコマンドについて)

バックアップのコマンドについて

このQ&Aのポイント
  • バックアップを取るためのおすすめのコマンドはどれでしょうか?ddを使用してパーティション全体のバックアップを取る方法は時間がかかるため、より効率的な差分バックアップを取る方法を試したいと思います。
  • 自分の知る差分バックアップの方法としてtar、dump、rsyncがありますが、それぞれのメリットとデメリットを比較してどれが良いのか検討したいです。また、cronを使用して一定回数起動(シャットダウン)したときに自動で差分(増分)バックアップを取る方法も知りたいです。
  • バックアップのためのおすすめのコマンドを教えてください。ddを使用してパーティション全体のバックアップを取ると時間がかかるため、効率的な差分バックアップの方法を知りたいです。また、cronを使用した自動差分(増分)バックアップの取り方も教えてください。

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

  • ベストアンサー
回答No.1

いろいろ 考え方がるのでしょうけど、 私は、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から取り出す) って感じです。

noname3220
質問者

お礼

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

その他の回答 (1)

回答No.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すると他の方法より簡単に見つけられて、重宝しています。

noname3220
質問者

お礼

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