バックアップには永遠にかかります。増分スナップショットをバックアップするためにbtrfsまたはZFSを信頼できるようになる前に、実際に変更されたファイルを追跡するためにinotifyを使用するデーモンがあり、バックアップがより迅速に実行されるようになったのではないでしょうか。このプログラムはどこにありますか?
ファイルシステム全体を毎回クロールする必要なしに、Linuxボックスをバックアップするにはどうすればよいですか?新しい写真や変更された写真、ソースコードなどを検出し、それらをキューに入れてNASにコピーするプログラムを希望します。
「yum search inotify」で自分の質問に答えました。これは lsyncd と呼ばれ、Googleコードでホストされています。
残念ながら、それは常に最初に完全なrsyncを実行するように見えるので、一度に14時間以上コンピューターの電源が入っていなかったとしても、それでも私には役に立ちません。
Lsyncdはrsyncを使用して、ローカルディレクトリをrsyncdを実行しているリモートマシンと同期します。 Lsyncdはinotifyを通じて複数のディレクトリツリーを監視します。監視を追加した後の最初のステップは、すべてのディレクトリをリモートホストとrsyncし、inotifyイベントを収集して単一のファイルを同期することです。そのため、lsyncdは軽量のライブミラーソリューションであり、システムとうまく調和しながら簡単にインストールして使用できます。コマンドラインオプションの詳細については、lsyncd --helpを参照してください。
fsnotify
の問題を解決するために導入されたinotify
の欠点を解決するように設計されたdnotify
という新しいシステムがあります。 fsnotify
を使用すると、大騒ぎせずにファイルシステム全体を監視できます。うまくいけば、fsnotify
が将来のすべてのLinuxバックアップ問題の解決に役立つことを願っています。
(テストではなく)調査に基づいて、inotifyはほとんどのシステムで非常に多くのファイルを処理できないか、処理が非常に遅いようです。 http://www.pubbs.net/kernel/200905/109416/ のスレッドは最も有用でした。メインラインにある、またはメインラインに向かっていると思われる新しいLinux機能、fsnotifyを指しています。これはLinux 2.6.31以降です。
incron で何かをハックできます。
/path1 IN_CLOSE_WRITE rsync -au $ @/$#backuphhost:/ path
Lsyncdは、起動時に監視対象ツリー全体を同期します。これは、99%の場合、これが賢明なことだからです。ローカルホスト上にあるターゲットホスト上のディレクトリが必要です。そうしないと、同期が失敗する可能性があり、オフにしたときに見逃したものを同期したい場合があります。ただし、何をしているのかがわかっている場合は、Lsyncd構成ファイルでsync {...、startup = false}を設定するだけで、起動の同期をオフにできます。
inotifyに関しては、ファイルの数ではなく、リソースを消費するディレクトリの数です。含まれるファイルの数に関係なく、1つのディレクトリは1つのウォッチです。
fanotify inotifyのようなfsnotifyの構築は、大量のディレクトリを監視している人々にとって非常に有望に見えましたが、現在Linux 2.6.37の時点では、fanotifyは名前変更(移動)イベントをまったく報告しないため、次のようなジョブでは使用できません:-(
私は6か月をかけて、あなたがしようとしていることを実行するための最良のソリューションを探しました。 NASへの効率的なバックアップ。最初の同期後、他のすべてはバターのようにスムーズです。 Lsyncdの最新バージョンは非常にうまく動作します。以下のリンクに私がやったことを文書化しました。フォルダーの値を置き換えるだけです。お役に立てれば:
https://docs.google.com/document/d/1XpqM5h5YMwuQqzdknyDDnjcQVYGjAsyAxfYprqSnhd0/edit
inotify-tool + rsync解決の代わりにsersyncと呼ばれる、アジアで使用される新しいシステムがあります http://code.google.com/p/sersync/ 非常に使いやすいです。