2

これが私のファイル構造です:

Server_A                  Server_B
==============            ==============
/path/dir1/               /path/dir1/
           logA.txt                  logA.txt
           logB.txt                  logB.txt
/path/dir2/               /path/dir2/
           fileC.txt                 fileC.txt
           fileD.txt                 fileC.txt

サーバーAからBにパス/ディレクトリ2をrsyncする必要がありますが、パス/ディレクトリ1は必要ありません。

私の rsync コマンドは次のようになります。

rsync -arv --exclude '/dir1' /path/ root@server_b:/path

しかし、実行するたびに、結果は出力に dir1 を示します。

sending incremental file list
./
dir1/
dir1/logA.txt
dir1/logB.txt
sent 52147 bytes  received 23342 bytes  14405.50 bytes/sec
total size is 215619123  speedup is 2851.02

私は何が欠けていますか?

4

1 に答える 1

2

実行しているコマンドを正確に書き起こしているとは思いません。/tmp/src次のようなディレクトリがある場合:

/tmp/src/
/tmp/src/dir1
/tmp/src/dir1/file1
/tmp/src/dir1/file2
/tmp/src/dir2
/tmp/src/dir2/file1
/tmp/src/dir2/file2

次のように、別のサーバーに同期して除外することができます/tmp/src/dir1

rsync -av --exclude=/dir1 /tmp/src/ server:/tmp/dst/

そして、実行は次のようになります。

sending incremental file list
created directory /tmp/dst
./
dir2/
dir2/file1
dir2/file2

これは、質問で説明した内容と完全に一致しているようです。rsyncバージョン3.0.8を使用しています。実際のrsyncコマンドラインとファイルシステムの両方を注意深く調べることをお勧めします。明らかなものが何も表示されない場合は、実行している実際のコマンドを、トップレベルのディレクトリリスト(巨大でない限り)と一緒に投稿できますか?

于 2012-05-11T01:12:59.603 に答える