1

リモート マシンが rsyncd を使用している場合、次の rsync コマンドを使用すると、多数のリモート ファイルをローカル マシンにコピーできます。

rsync -R ホスト名::'module/path1/file1 module/path2/file2 module/path3/file3 module/path4/file4' /local/path

ただし、ファイルの数が多すぎると、rsync がハングし、ターゲットの場所にファイルが作成されません。私がテストしている環境での制限は 22 です。22 個のファイルでは、数秒で終了します。23 個以上のファイルがあると、無期限にハングします。

これが発生する理由を誰かが提供できますか? ここに私がチェックしたいくつかのことがあります:

  • どちらのマシンも、ディスク容量やメモリが不足していません。
  • 一度に 22 個を超えない限り、すべてのファイルを転送できます。(つまり、23 番目以降の特定のファイルについて特別なことではありません。)
  • 権限の問題はありません。リモート マシン上のすべてのファイルを読み取ることができ、ターゲットの宛先に書き込むことができます。(また、前の項目で述べたように、一度に 22 個を超えない限り、全体のリストにある約 50 個のファイルをすべて転送できます。)
  • -n (予行演習) オプションを使用しても何も変わりません。
4

4 に答える 4

1

さて、さらにテストした結果、引数の長さに関係しているようです。正確な長さはわかりませんでしたが、パスとファイル名を短くして別の 25 個のファイルのセットを試したところ、正常に機能しました。したがって、コマンドの長さを制限する必要があると思います。お尻。:\

于 2009-01-31T02:58:28.613 に答える
1

個々のファイルを指定している理由についての説明はありません。最も簡単な方法は、ディレクトリ全体を再帰的に rsync し、さらに制御が必要な場合は、一致させたい適切なパターンで--includeまたはフラグを使用することです。--exclude

バックアップするすべてのファイルを明示的に指定する必要がある場合は、それらのファイルをリストした別のテキスト ファイルを使用し、--files-fromフラグを指定して rsync を呼び出します。

--files-fromオプションを使用しました。それはうまくいきます。rsync は非常に安定していますが、構成オプションが多いため、学習が混乱する可能性があります。たとえば、--cvs-excludeCVS だけでなく SVN についても、すべてのメタデータ ファイルをバックアップから除外するフラグがあります。非常に便利ですが、簡単には見つけられません。

これらのオプションはすべて rsync のドキュメントで詳しく説明されています

于 2009-01-31T04:06:09.350 に答える
0

クライアントとサーバーを追跡し、誰が問題を引き起こしているかを確認します。rsyncのある種のバグのようなにおいがします。

于 2009-01-31T02:55:21.680 に答える
-1

これは予期された動作ではなく、バグであると仮定しましょう。

Rsyncはオープン ソース プロジェクトであるためです。ソースをダウンロードし、バグを見つけて、全員に修正をアップロードできます。最初に最新バージョンを使用しているかどうかを確認する必要があります。

于 2009-01-31T04:02:17.410 に答える