전송이 완료된 후 일련의 파일을 처리하는 방법

전송이 완료된 후 일련의 파일을 처리하는 방법

내가 소유한 것

서버가 2개 있습니다. 그들에게 전화 sen.der하고 recei.ver.

발신자는 파일을 생성합니다. 이러한 파일의 크기는 20Kb에서 30Gb입니다.

파일 생성 후 파일 크기를 확인하고 recei.ver10Mb 미만이면 SFTP를 통해 파일을 보내는 스크립트를 작성했습니다. 그렇지 않고 10Mb보다 큰 경우 10Mb 청크로 분할하여 recei.verSFTP를 통해 보냅니다.

전송 시간은 분명히 파일 크기와 회선 속도에 따라 결정됩니다. 이 회선 속도는 100Kbps만큼 낮을 수 있으며, 이는 이론적으로 가장 큰 파일을 전송하는 데 최대 11시간이 걸릴 수 있음을 의미합니다.

나는 필요하다

내가 원하는 것은 recei.ver파일을 하나의 큰 파일로 자동으로 재구성하는 것입니다(그리고 압축 풀기, 알림 이메일 보내기 등과 같은 몇 가지 추가 작업을 실행하는 것입니다).

난 무엇인가?할 수 있다하다

inotifywait해당 옵션을 사용해 보고 -m작성 중인 파일의 파일 크기를 확인한 다음 생성된 마지막 파일이 10,485,760바이트 미만인 경우를 분류할 수 있습니다.

그런 다음 이 청크를 캡처하고 테스트 tar를 사용할 수 있습니다.tar tf <filename>; echo $?

더 좋은 방법이 있나요?

작동할 수도 있지만... 우아해 보이지는 않습니다. 더 좋은 방법이 있나요?

답변1

파일 크기의 일부를 암시적 끝 표시로 사용하는 것은 취약할 수 있습니다. 더 나은 접근 방식은 개별 부품을 먼저 보낸 다음 부품 목록을 나열하는 제어 파일을 전송하여(전송 문제를 감지하기 위해 sha256 체크섬 사용) 수신 프로그램이 재조립을 시작하기 전에 모든 부품이 전송되었는지 확인할 수 있도록 하는 것입니다.

관련 정보