한 디렉터리에서 다른 디렉터리로 약 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
예상한 대로 작동하고 있다는 사실이 만족스러우면 제거하세요.