1

現在、Linux でファイル システムのバックアップおよび復元プログラムを実装しています。要件は、すべての操作をオンラインで実行する必要があることです。

私の問題は、現在、プログラムが復元するファイルの状態を認識していないことです。そのため、復元が行われるときに一部のファイルが他のアプリケーションによって編集されている可能性があり、その場合、ファイルの変更がバックアップによって上書きされる可能性があります。

私が思いつく解決策の 1 つは、ファイルを復元する前に他のアプリケーションによってファイルが開かれているかどうかをテストし、ファイルが閉じられるまで復元を延期することです。ただし、ファイルのオープン状態をテストするには、ファイル システムをトラバースする必要があると思います/proc。つまり、実行中のすべてのプロセスをチェックし、プロセスごとにオープン ファイルのリストを取得する必要がありますが、これには時間がかかります。

この問題に対するより良い、または古典的な解決策はありますか? どんなヒントでも大歓迎です。

よろしくお願いいたします。

4

1 に答える 1

1

ファイルシステムの変更をリッスンして、それらに責任があるかどうかを確認することができます。inotifyフレームワークはそのようなタスクであなたを助けるためにここにあります。inotifyはユーザーランドAPIです。ウィキペディアを参照してください... http://en.wikipedia.org/wiki/Inotify

于 2012-12-13T21:50:41.463 に答える