フォルダ構造を維持しながら大量のファイルをコピー

フォルダ構造を維持しながら大量のファイルをコピー

あるディレクトリから別のディレクトリに約300,000個のファイル(それぞれ約30MB)をコピーしています。フォルダ構造を維持するには、次のコマンドを使用します。

find . -name '*.msg' -exec cp -p --parents \{\} /destinated_folder \;

このエラーメッセージが表示されました

packet_write_wait: Connection to aa.bbb.ccc.dd port ee: Broken pipe`

スクリプトは実行中ですが、途中で停止します。同様のrsync議論も見ました。ここ

解決策が何であるか疑問に思います。私は6vCPUと32GBのRAMを搭載したUbuntuを使用しています。

答え1

使用すると、find -exec cpエラーが発生したときに簡単に再起動できないプロセスがあります。私はあなたが見ているエラーがあなたが示したコマンドに関連しているとは思わない。なぜなら、コマンドにネットワークへの参照がないからです。

SMB / NFSドライブからコピーするか、SMB / NFSドライブにコピーしていますか? (そうであれば、rsyncリモートシステムにログインしてネットワークレプリケーションを管理できるようにすることで、より効率的なコピーを入手できます。)

それにもかかわらず、このrsyncコマンドを使用すると、コピープロセスを複数回再開できます(すでに作成したコピー処理を含む)。

rsync -av --include '*.msg' --include '*/' --exclude '*' --prune-empty-dirs --dry-run . /destinated_folder/

--dry-run期待どおりに機能しているという事実に満足している場合は、削除してください。

関連情報