web-dev-qa-db-ja.com

すべてをコピーする2つの既存のディレクトリをrsync

2つの場所に2つのファイルサーバーがあります。現在、両方に同じデータがあり、通常は変更されていません(読み取り専用アクセスに使用されます)。2番目のサーバー(私が接続しているサーバー)がセットアップされたとき、データはLAN経由でコピーされ、地理的に移動されました。

必要なディレクトリで初めてrsyncを使用しようとしています。コマンドの例。

Sudo rsync -avz --ignore-existing -P --dry-run /media/Storage/OSs/ user@mydomain:/mnt/Storage/OSs/

-c -t -u(さらにリモートサーバーにアクセスし、タイムスタンプを今日に更新しました)を使用してみましたが、ドライランを実行するたびにすべてをコピーする必要があります。

さらに、ユーザーは同じUIDを持つ両方のマシンで同じです。

*編集

少し遊んだ後、rsyncはサブディレクトリ名の空白を好まないことがわかりました。たとえば、ローカルシェルをエスケープするために 'を使用し、リモートシェルをエスケープするために\を使用する場合

Sudo rsync -avz --ignore-existing -P '/ media/Storage/OSs/Windows/Windows server 2011 /' 'user @ mydomain:/ mnt/Storage/OSs/Windows/Windows\server\2011 /'

その後、すべてが順調です。私の理論では、rsyncは空白を含むサブディレクトリを好まないということです。数千のサブディレクトリがあります。私が考えることができる唯一の解決策は、各サブディレクトリを個別に実行する小さなpython/Shellスクリプトを書くことですが、望ましくありません。

2
Alex

弾丸をかむべきだったことが判明しました...ドライランは、探索するディレクトリを出力するだけで、実際のファイルは出力しませんでした。

私は実際にrsyncを実行しましたが、1つまたは2つの新しい追加を除いてすべてをスキップして大丈夫でした。

参考のため、これは機能しました。

Sudo rsync -avzs --ignore-existing --progress '/media/Storage/OSs/' 'User@MyDomain:/mnt/Storage/OSs/'
2
Alex