1

おそらくMD5マニフェストに基づいて、ファイル構造の差分を作成するツールはありますか? 私の目標は、新しい/更新されたファイルと削除するファイルのリストを含むパッケージをネットワーク経由で送信することです。新しい/更新されたファイルをコピーし、ソース ファイル構造で削除されたファイルを削除する必要がありますか?

4

2 に答える 2

3

rsync を試してみてください。必要に応じて、コマンドは次のように単純になります。

rsync -az --del /path/to/master dup-site:/path/to/duplicate

rsync の Web サイトからの引用:

rsync は、高速増分ファイル転送を提供するオープン ソース ユーティリティです。rsync は GNU General Public License の下で自由に利用でき、現在は Wayne Davison によって保守されています。

または、ウィキペディアがお好みの場合:

rsync は、必要に応じてデルタ エンコーディングを使用してデータ転送を最小限に抑えながら、ファイルとディレクトリをある場所から別の場所に同期する Unix システム用のソフトウェア アプリケーションです。ほとんどの同様のプログラム/プロトコルには見られない rsync の重要な機能は、ミラーリングが各方向に 1 回だけ送信されることです。rsync は、オプションで圧縮と再帰を使用して、ディレクトリの内容をコピーまたは表示し、ファイルをコピーできます。

于 2008-10-09T22:04:42.130 に答える
1

@vfilby私は似たようなものを実装するプロセスです。

私はしばらく rsync を使用してきましたが、権限の変更を制御できないリモート サーバーにデプロイすると、おかしくなりました。rsync を使用すると、アクセス許可を含めないことを選択できますが、何らかの理由で考慮されることになります。

現在、git diff を使用しています。これは、テキスト ファイルに対して非常にうまく機能します。Diff は、ファイルに含める必要がある MANIFEST ではなく、パッチを生成します。パッチの良いところは、これらのパッチを適用する前に使用およびテストするための確立されたフレームワークが既に存在することです。

たとえば、任意の *unix ボックスに標準装備されているパッチ ユーティリティを使用すると、ドライラン モードでパッチを実行できます。これにより、適用しようとしているパッチが実際に適用されるかどうかが、実行前にわかります。これにより、更新するファイルがパッチの準備中に変更されていないことを確認できます。

これがあなたが探しているものと似ている場合は、私のプロセスについて詳しく説明できます.

于 2009-10-14T17:24:37.103 に答える