転送中にrsnapshot / rdiff-backupが中断されるとどうなりますか?


20

質問はそれをすべて言います:

転送中にrsnapshotまたはrdiff-backupが中断されるとどうなりますか?

rsnapshotはシステムの完全なスナップショットをローテーション方式で作成しようとし、rdiff-backupは差分バックアップを作成します。差分バックアップは、その背後に以前に保存されたファイルに基づいています。

だから:途中で中断されるとどうなりますか?

これは「不完全なスナップショット」になりますか?

これに依存する他のスナップショットは破損しますか?(確かにそうではありませんが、...?)


1
この質問を2つの別々の質問に分けていたら、もっと明確になっていたと思いませんか?
andol

2
@andol中断された転送から回復する方法に関する情報を探していた場合、2つの質問としてそれが良いと思います。これは、「どちらを使用するかを判断するのに役立つ」という変形のように、各ユーティリティを使用した場合にどの程度のトラブルが発生するかを比較するための要求であると解釈しました。
エンドリューク

Andolに感謝します。いや、これは一つの質問だと思う。基本的に、「転送中にrsnapshot / rsyncが中断されるとどうなりますか?」ツールは特定のニッチにまたがると思うので、IMOは2つの別個の質問を保証しません。私は、「不完全なスナップショット」という問題を、明確化のための潜在的な結果の1つとして提起しました。
emf

回答:


22

私の理解は...

rdiff-backupは、次回の実行時に不完全な増分を検出します。バックアップの場所が、中断されたバックアップの試行が開始されなかった場合と同じになるように、不完全な増分を削除します。

rsnapshotは、ルーチンがより段階的で、sync_firstand use_lazy_deletesオプションの使用に応じて変化するため、少し複雑です。

  • 使用sync_firstrsnapshot syncて中断された場合、単純にrsnapshot sync再度実行して問題を解決できます。rsnapshot <backup level>代わりにこの時点で誤って実行した場合、最新のバックアップポイントは不完全なままであり、ローテーションで実行されます。
  • を使用しない場合sync_firstは、古いバージョンと新しいバージョンのファイルのハイブリッドである不完全なバックアップポイントが残っています。各バックアップポイントを手動で逆回転させない限り、不完全なバックアップポイントは回転を介して実行されます。
  • どちらの場合も、有効にしrsnapshot <backup level>ない限り、実行すると最も古いバックアップポイントが失われますuse_lazy_deletes

それに注意しsync_firstuse_lazy_deletesより多くのディスク容量を使用するという犠牲を払ってください。


リマインダー/免責事項:これは言うまでもありませんが、インターネット上の他人のアドバイスを盲目的に信頼することは決してありません。ミッションクリティカルな何かのためにrdiff-backupまたはrsnapshotを使用する予定がある場合は、マニュアルのすべての単語を読みすべてを自分でテスト、テスト、テストしてください!


1
この種類の「適切なメソッド」文化に遅れずについていくためのかなりのリマインダーであり、良い習慣であるため、Linuxが愚かな消費地になることは望ましくありません。注意していただきありがとうございます。
emf

だから、正しく理解する:rsnapshotのための「回転を通って運ば」不完全なバックアップを持つことは二つのことに達するだろう。1.後のポイント2で参照バックは、任意のより高いレベルのスナップショットをする場合は、スナップショットが不完全になることをまだ完全で、ただし、不完全なスナップショットに含まれていなかった以前のハードリンク可能ファイルを適切に参照することはできません。これは正しいです?
emf

1

それはちょうど私に起こった。私の外付けドライブは、rsnapshotの増分バックアップの途中でいっぱいになりました。

rsync: write failed on "<path>": No space left on device (28) 

これから学んだことをいくつか共有したいと思います。すなわち、そのようなケースが私をかみつけるかなりの機会を修復し、制限すること;)

Rsnapshotの中断されたバックアップを再開する

安全にロールバックする2つの方法を知っています。

手動で

  1. 最後のディレクトリを削除します(例:daily.0)
  2. 連続したディレクトリの名前を変更します(daily.1-> daily.0、...); 可能なスクリプト1
  3. 通常どおりバックアップを再度実行します。

自動的に

rsnapshotには一時停止/停止および再開機能がありません(「ロールバックプランによりスキップされた2を除きます)。これらの機能を処理するにはラッパーを使用する必要があります。

rsnapshot-once3 by Philipp C. Heckelは、PHPのrsnapshotのラッパーです。

  • rsnapshotのconfを変更せずに動作します
  • cronを介して、毎日、毎週、毎月のタスクがそれぞれの期間に1回だけ実行されるようにします(ラップトップに最適)
  • 失敗したバックアップのロールバック(最後のバックアップが完了したかどうかを確認します。完了していない場合、最後のディレクトリが削除され、連続するディレクトリの名前が変更されます(例:daily1。-> daily.0、...)

それを1年間使用して、私は幸せなユーザーです:私はphp.ini openbase_dirをバックアップの必要と出来上がり、幸運な日のために編集しました^ _ ^以前の生のrsnapshotベースのソリューションよりもスムーズで安全です。

注:slmは重複した質問からここに私をリンクしました:Rsnapshot destination full-どのように安全に再実行しますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.