マニュアルページには、この例はありません。 rsyncに、それらのファイルの場所にあるファイルのみを含めるように指示するのは大変です。含めるために除外する必要がある理由、rsync
がインクルードファイルに含まれるものを含めない理由、それ以外のすべてが除外される理由がわかりません。
これは私のスクリプトです:
rsync -ruv --rsh=ssh --include-from=zz-rsync-test.prod.incl /usr2/subdir remoteSrv:/tmp/.
これは機能しない私のインクルードファイルです。コピーが多すぎます。/usr2/subdir(奇妙なsubdir
ディレクトリを含む)のすべてのものをコピーします。 data/text_forms
ディレクトリ内のper、42f、およびxmlファイルのみをコピーします。
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*
以下は機能せず、何もコピーしません。
- *
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*
また、以下も機能せず、何もコピーしません。
- *
+ data/
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*
また、以下も機能せず、何もコピーしません。
- *
+ data/
+ data/text_forms/
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*
以下も機能しません。
+ */
+ /data/text_forms/*.per
+ /data/text_forms/*.42f
+ /data/text_forms/*.xml
+ /data/text_forms/*.xml.*
- *
次のいずれも機能しません。
+ /data/
+ /data/text_forms/
+ /data/text_forms/*.per
+ /data/text_forms/*.42f
+ /data/text_forms/*.xml
+ /data/text_forms/*.xml.*
- *
私は解決策を見つけました。それを見つけるのに丸2日かかった。これがあなたがそれほど多くの時間を費やさないのを助けることを願っています。
最初の問題は、/usr2/subdir
のサブディレクトリsubdir
が含まれていて、そのディレクトリ全体を含めることを望んでいなかったことです。ベースディレクトリにしたかったので、スラッシュが必要です。 /usr2/subdir/
のように終了するため、新しいコマンドは次のようになります。
rsync -ruvv --rsh=ssh --include-from=zz-rsync-test.prod.incl /usr2/subdir/ remoteSrv:/tmp/.
コマンドの実行時に除外または含まれるものの詳細を取得するために、コマンドラインにv
オプションを追加したことに注意してください(-ruvv
)。基本ディレクトリを修正し、余分なv
を追加すると、正しいインクルードファイルを作成するのが少し簡単になりました。
+ data/
+ data/text_forms/
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*
- *
+
行はすべて、- *
の前に配置する必要があります。特に、ディレクトリ内に直接ファイルを取得したくない場合でも、スキャンする各ディレクトリを明示的に含める必要があるためです。 data/anyTestFile1
とdata/text_forms/anyTestFile2
を追加するテストを行ったのは、それらがピックアップされるかどうかはわかりませんでしたが、そうではなかったので、私がやりたいことをやっているからです...最後に。