何万ものファイルと 520 GB のデータを含むフォルダがあり、rsync によって毎晩リモート ホストに同期しています。通常、このプロセスには約 5 時間かかります。また、日中は、両方のツリーを比較せずに、新しいファイルと変更されたファイルをリモートの場所にコピーすることも望んでいます。これは、ターゲット上の人々が新しいファイルにアクセスする必要がある場合があるため、rsync が行うことです。 scp ですが、これまでに遭遇した 2 つの問題を解決する方法がわかりません。はい、私はバッシュの初心者です。:)
これは、毎時間実行したいコマンドです: find Folder/ -type f -mmin -60 -print0 -exec scp "/rootfolder1/subfolder1/{}" "user@host:/rootfolder2/subfolder2/{}" \;
私が抱えている問題は次のとおりです: scp に渡された文字列に空白がある場合、それは機能せず、エラー "scp ambiguous target" がトリガーされます。どうやら scp にはバックラッシュでエスケープされたスペースが必要ですが、FIND にそのようにパスを出力するように指示する方法も、そこに SED コマンドを挿入して次のようなことを行う方法もわかりません: sed 's/ //g' .
もう1つは、コピーするファイルがターゲットscpに存在しないフォルダーにある場合にもエラーが発生することです。したがって、すべてのファイルをコピーする前に「mkdir -p」を試す必要があるかどうか (mkdir -p がリモート ホストで機能すると仮定)、または scp に不足しているフォルダーを強制的に作成させる方法があるかどうかはわかりません。
もちろん、より良い解決策を提案できるなら、ぜひ!! ありがとうございました。