파일이 폴더에 배치되자마자 파일을 제거하는 스크립트를 작성하려고 합니다. 이를 수행하는 한 가지 방법은 cron 스케줄러의 스크립트에서 rsync를 실행하는 것입니다.
이 접근 방식의 문제점은 시스템 오버헤드입니다. 매초마다 실행할 수는 없습니다. 일정한 간격을 두고 실행하면 해당 간격 동안 파일이 취약해집니다(발신자가 액세스할 수 있음). 요구 사항은 파일이 도착하자마자 사라지는 것입니다.
stackoverflow를 확인하고 찾았습니다.잉크론주문하다. 그러나 이는 Linux에서만 작동하며 Solaris에서는 작동하지 않습니다.
답변1
Solaris 11 이상에서는 기본적이고 보다 효율적인 기능을 제공합니다.가리키다(파일 이벤트 알림).
어떤 이유로 Gamin의 폴링 특성이 귀하의 요구 사항에 맞지 않고 Solaris 10을 계속 사용하려는 경우 탐색할 수 있는 최소한 몇 가지 대안이 있습니다.
- BSM 감사를 활성화하고 FC 이벤트(파일 생성)를 추적합니다.
- 모니터링하려는 디렉토리에 파일이 생성되면 Dtrace를 사용하여 반응하십시오.
후자의 경우 dtrace 스크립트 자체의 디렉터리 밖으로 대상 파일을 이동할 수도 있습니다.
답변2
귀하가 명시적으로 Solaris 10을 언급했다는 것을 알고 있지만, Solaris 11을 사용하고 있다면 다음을 사용할 수 있습니다.시계 디렉토리Solaris 파일 이벤트 알림을 기반으로 하는 명령입니다. 따라서 기본적으로 일종의 폴링을 기반으로 하는 다른 솔루션에 비해 시스템 오버헤드가 거의 0%에 가깝습니다. 이 명령은 폴더에서 파일 이벤트가 발생할 때까지 영원히 기다리거나 시간 초과가 있는 인수를 사용하는 차단 명령입니다. 가장 일반적으로 새 파일이 도착할 때까지 기다리는 데 사용됩니다.
정말로 Solaris 10을 사용하겠다고 고집하신다면 저는 어떤 방법도 모르겠습니다.아니요어떤 방식으로든 여론조사를 기반으로 합니다.
또한 v7부터 Java에는파일 시스템 모니터링을 위한 내장 메커니즘. 이 솔루션의 장점은 관련 플랫폼에 가장 효과적인 방법을 자동으로 활용한다는 것입니다. 즉, 이제 응용 프로그램이 Solaris 10에서 실행될 수 있으며(아마도 일부 기본 폴링 메커니즘을 사용하는 Java를 통해) Solaris 11로 마이그레이션하면 동일한 응용 프로그램이 기본 Solaris 파일 이벤트 알림 메커니즘을 원활하게 활용할 수 있습니다.