奇妙な問題が発生しました。新しいサーバーに転送する必要がある何百もの巨大なログファイルを含むディレクトリがあります。
最初は次のことを行いました。rsync -zavh /foo/bar/logs 10.10.10.10:/
それはうまく機能し、永遠にかかった。今2日後に更新しようとしています。新しいファイルが20個しかないことがわかっています。だから私が最初にやるrsync --dry-run -zavh /foo/bar/logs 10.10.10.10:/
。デルタファイルのリストを送信するとしますが、新しい20個のファイルを使用してディレクトリ全体を再コピーします。
確認してみると、古いファイルの日付スタンプとサイズが同じです。
rsyncが20個の最新のファイルしか転送しないのはなぜですか?
答え1
ソースディレクトリに末尾のスラッシュはありません。
これを初めて実行すると、期待/logs
どおりにターゲットに作成されることが予想されます。ただし、次回実行すると、ソースlogs
ディレクトリを既存の/logs
ディレクトリに配置します/logs/logs
。
ここで解決策は、ソースディレクトリに末尾のスラッシュを追加し、ターゲットを完全に指定することです。
rsync -zavh /foo/bar/logs/ 10.10.10.10:/logs/