FTP를 통해 들어오는 파일을 처리하는 서비스가 있습니다.APPE FTP 명령 전송 완료 감지 서버
Proftpd가 설치된 데비안 서버에서 iNotify 이벤트를 사용하여 파일 전송이 완료된 시점을 확인하고 작업을 시작할 수 있습니다.
파일이 더 이상 기록되지 않으면 이벤트가 트리거됩니다.
새로운 Nikon D4 카메라와 WT-5 무선 송신기가 APPE FTP 명령을 사용하여 파일을 전송할 때까지 완벽하게 작동했습니다.
APEX FTP 명령은 첫 번째 청크가 파일을 만든 후 서버의 기존 파일에 추가되는 데이터 청크에 파일을 보냅니다.
그러나이 결과는 연결이 닫힐 때까지 여러 iNotify 이벤트가 파일로 트리거되는 결과가 여러 번 표시되는 것을 의미합니다.
파일을 처리하기 전에 파일이 처리되기 때문에 오류가 발생합니다. 그리고 나는 항상 처리 된 파일을 제거합니다.
들어오는 파일을 처리 할 때이 서비스가 빠르기 때문에 iNotify를 사용하여이 솔루션이 정말 마음에 들었고 파일 크기가 n 초 동안 변경되지 않았거나 파일 전송 완료되었습니다.
내 질문 : 파일 크기를 확인하거나 마지막으로 수정 한 날짜를 비교하지 않고 파일 전송이 실제로 완료되었는지 확인할 수있는 방법이 있습니까?
나는 proftpd에서 아무런 노력없이이 일을 할 수있는 방법을 찾으려고 노력했다.
같은 파일이 완료되었다는 xferlog에 상태를 여러 번 :
Fri May 11 14:15:41 2012 2 host-95-199-17-243.mobileonline.telia.com 131072 /var/app/incoming/file.JPG b _ i r auser ftp 0 * c
Fri May 11 14:15:43 2012 2 host-95-199-17-243.mobileonline.telia.com 262144 /var/app/incoming/file.JPG b _ i r auser ftp 0 * c
Fri May 11 14:15:47 2012 3 host-95-199-17-243.mobileonline.telia.com 385624 /var/app/incoming/file.JPG b _ i r auser ftp 0 * c
끝에 C는 전송이 완료되었음을 의미합니다.
그래서 파일이 실제로 들어오는 모든 파일에 대해 완료되었는지 확인해야한다면 실제로 완료된 파일에 대한 불필요한 지연을 의미합니다.
이렇게 보이는 것이 비정상적인 문제는 아니지만 그것에 대해 아무 것도 찾을 수 없습니다.
아이디어가 있으십니까?
어떤 이벤트 당신은 inotify를에 대한 듣고? – CagedMantis
IN_CLOSE_WRITE을 (를) 듣고 있습니다. – JayLev