내가 소유한 것
서버가 2개 있습니다. 그들에게 전화 sen.der
하고 recei.ver
.
발신자는 파일을 생성합니다. 이러한 파일의 크기는 20Kb에서 30Gb입니다.
파일 생성 후 파일 크기를 확인하고 recei.ver
10Mb 미만이면 SFTP를 통해 파일을 보내는 스크립트를 작성했습니다. 그렇지 않고 10Mb보다 큰 경우 10Mb 청크로 분할하여 recei.ver
SFTP를 통해 보냅니다.
전송 시간은 분명히 파일 크기와 회선 속도에 따라 결정됩니다. 이 회선 속도는 100Kbps만큼 낮을 수 있으며, 이는 이론적으로 가장 큰 파일을 전송하는 데 최대 11시간이 걸릴 수 있음을 의미합니다.
나는 필요하다
내가 원하는 것은 recei.ver
파일을 하나의 큰 파일로 자동으로 재구성하는 것입니다(그리고 압축 풀기, 알림 이메일 보내기 등과 같은 몇 가지 추가 작업을 실행하는 것입니다).
난 무엇인가?할 수 있다하다
inotifywait
해당 옵션을 사용해 보고 -m
작성 중인 파일의 파일 크기를 확인한 다음 생성된 마지막 파일이 10,485,760바이트 미만인 경우를 분류할 수 있습니다.
그런 다음 이 청크를 캡처하고 테스트 tar를 사용할 수 있습니다.tar tf <filename>; echo $?
더 좋은 방법이 있나요?
작동할 수도 있지만... 우아해 보이지는 않습니다. 더 좋은 방법이 있나요?
답변1
파일 크기의 일부를 암시적 끝 표시로 사용하는 것은 취약할 수 있습니다. 더 나은 접근 방식은 개별 부품을 먼저 보낸 다음 부품 목록을 나열하는 제어 파일을 전송하여(전송 문제를 감지하기 위해 sha256 체크섬 사용) 수신 프로그램이 재조립을 시작하기 전에 모든 부품이 전송되었는지 확인할 수 있도록 하는 것입니다.