FTP를 통해 파일을 업로드하는 컴퓨터가 있습니다. 이 컴퓨터에서 동일한 네트워크에 있는 다른 컴퓨터로 cronjob 및 scp/rsync를 실행하고 싶습니다(복사만 하면 됩니다).
문제는 불완전한 파일을 복사하고 싶지 않다는 것입니다(아직 전송 중임). 다른 서버에 복사하기 전에 파일이 완성되었는지 확인할 수 있나요?
답변1
당신은 그것을 사용할 수 있습니다동기화:
Lsyncd는 로컬 디렉터리 트리 이벤트 모니터 인터페이스(inotify 또는 fsevents)를 모니터링합니다. 몇 초 동안 이벤트를 집계하고 결합한 다음 프로세스를 생성하여 변경 사항을 동기화합니다. 기본적으로 이는 rsync입니다.
지정할 수 있습니다정지시키다나중에 파일에 대한 변경 사항이 동기화됩니다. 예를 들어 일반적인 업로드 시간의 5배로 설정하면 괜찮을 것입니다.
답변2
만약에lsyncd에 대한 생각당신 마음에 들지 않습니다. 왜냐하면 "일반적인 업로드 시간"업로드 크기의 더 넓은 범위(32K에서 1234T까지)를 고려하지 않더라도 인터넷과 같은 매체에는 분명히 문제가 있습니다.FTP 전송 재개. 글쎄요, 제 생각조차 당신에게 도움이 되지 못할 것 같습니다. 하지만 어떻게 사용하는지라소프? ! ?
lsof /home/ftp
글쎄, lsyncd 문서를 주의 깊게 읽은 후, 내 우려는 "일반적인 업로드 시간" - 근거가 없는 것 같습니다. 모니터링하는 기본 inotify는 "CloseWrite"이며 괜찮은 것 같습니다. YMMV.