rsyncを使用してディレクトリ間でファイルを移動(コピーしない)しますか?

rsyncを使用してディレクトリ間でファイルを移動(コピーしない)しますか?

使ってきた同期しばらくファイルをコピーします。私の理解は同期比較するCP転送するファイルの一部がすでにターゲットディレクトリにある場合は、増分差分(「デルタ」など)のみが送信されます。

これが正しい場合、それを使用するとどのような利点がありますか?同期フォルダ内容の移動つまり、フォルダです。第二第二空ですか?

フォルダ1TBに近いデータ(数百万のファイル)があります。移転は以下を介して現地で行われます。ネットワークそして第二~であるその他ファイルシステム、両方インストール済みたとえば、スーパーコンピュータでははいネットワークファイルシステムそして第二はい光沢)。

それ以外に、どのフラグを使って尋ねるべきですか?同期次の場所でファイルを移動する(コピーではありません)到着第二(つまり、削除いつ転送が正常に完了しますか?

答え1

--remove-source-filesファイルをコピーするのではなく、rsyncに渡してファイルを移動できます。

しかし、あなたの場合、ターゲットは空であるため、rsyncを使用する必要はありません。 Pingyuanはmvできるだけ早くこれを完了します。

あなたの場合、NFS、Samba、sshfs、sftp、rsync over ssh、tarパイピングto sshなどから選択できる場合、ネットワークプロトコルの選択はパフォーマンスに影響を与える可能性があります。これらの方法の相対速度はファイルサイズ、ネットワーク、ディスク帯域幅、その他の要因によって異なり、一般的な推奨事項は提供できず、独自のベンチマークを実行する必要があります。

答え2

ディレクトリは削除されないため、--remove-source-files次のコマンドを実行します。移動するSSH経由のファイル:

rsync -avzh --remove-source-files --progress /source/ user@server:/target \
&&  find /source -type d -empty -delete

--progressこの転送は手動で行うため、個人的にこの機能が好きです。スクリプトを使用している場合は削除してください。転送速度がやや遅くなると予想しました。このコマンドの削除オプションは、空のディレクトリのみを削除します。ファイルが転送されないと、空でないディレクトリが削除される可能性があるため、find使用しないでください。rm -rfこのオプションは、「下部」から上に空のディレクトリツリーを削除するオプションをオンに-deleteします。-depth

答え3

通常、次のようにザイルズは言う同じ作業をより簡単に実行でき、共通ファイルシステム間で潜在的なスピードアップがない場合は、ファイルの移動を使用してもrsync利点はありません。mv

しかし、時には利点があります。特に、rsync原本、ターゲット、または作業を実行する機械の安定性が疑われる場合は、復元機能を使用できます。伝送規模が非常に大きく、グリッドを信頼できない場合、これはかなりの利点になる可能性があります。 rsyncを使用することは、エラーが発生したときにデータの破損を防ぎ、中断した部分から続行するためのより信頼性の高い方法です。

答え4

欲しいなら再帰マージディレクトリ...ディレクトリを別のディレクトリに移動します。コピーディレクトリ名、それから私の答えを見てください。ここserverfault.comから。mv同じ名前のディレクトリが存在し、rsync各ファイルを移動するのではなく(メタデータのみを読み書きのみ)、コピー(フルデータの読み込み+書き込み)を行うと正しく動作しません。

関連情報