あるディレクトリから別のディレクトリに約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
期待どおりに機能しているという事実に満足している場合は、削除してください。