파일 내용을 고려하여 디렉토리의 최종 수정 시간을 계산할 수 있습니까?포함 된 파일 내용을 기반으로 한 디렉토리의 최종 변경 시간?
우리는 일련의 업로드 디렉토리를보고 사용자 FTP 세션이 완료되었는지 확인하려고합니다.
사용자는 특정 파일 세트를 특정 디렉토리에 업로드하고 있으며, 해당 디렉토리 내의 마지막 파일이 N 분 이내에 변경되지 않았 으면이를 감지하고 싶습니다.
find . -mmin +5 -mmin -10 -type d -ls
: 분, 우리는 5 개 이상의 유휴왔다 디렉토리를 찾으려면이 시작
(. 우리는 "FTP 세션이 이루어집니다"에 대한 프록시로서 이것을 사용), 미만 (10)
여기에 사용 된 디렉터리 타임 스탬프는 가장 최근 파일이 디렉터리에 추가 된 시간을 기반으로합니다.
나는 Directory last modified date을 읽었으며 디렉토리의 파일 내용이 업데이트 될 때 변경되지 않으므로 디렉토리에 대한 mtime 또는 mmin 읽기가 작동하지 않음이 분명합니다. 따라서 위의 파일은 마지막 파일이 업로드하는 데 10 분 이상 걸릴 수있는 대용량 파일 인 경우 디렉토리가 실제로 유휴 상태가 아닐 수 있으므로 (즉 모든 파일이 변경되지 않음)이 작동하지 않습니다.
마지막으로 변경된 파일의 mtime을 타임 스탬프로 사용하지만 여전히 디렉토리 수준에서 작동하는 셸 기반 대안 (이상적으로는 find
명령의 구성이 이상적입니다) (즉, 우리는 하나의 디렉토리 안에있는 모든 파일을 기반으로 여러 히트 수)?
대체 솔루션을 고려하십시오. 원하는 옵션을 찾지 못했을 것입니다 (코드를 작성할 수 있습니다). 계약의 일부로 상업용 소스에서 파일을 가져 오는 경우 특수 파일 '플래그'파일을 마지막 파일로 보내달라고 요청하는 것이 부당하지 않습니다. 그런 다음 플래그 파일을 찾고 반복 할 수 있습니다. 도착한 시점에 처리를 시작할 수 있습니다 (유효성 확인 단계가 포함되어 있어야 모든 파일이 있는지, 어제와 동일하지 않은지 확인해야 함). , 비어 있지 않음 (플래그가 없으면 플래그 파일은 크기가 – shellter
인 파일 목록 일 수 있음) 불행히도 이러한 파일은 클라이언트 사용자 인터페이스에 파일을 저장하는 기술자가 아닌 사용자가 주로 사용합니다. 이 깃발 메서드를 배경으로 사용할 수는 있지만 사용자 지정 클라이언트 배포가 작동하지 않는 시나리오에 대한 대비가 여전히 도움이 될 것입니다. – Ramon