저는 비디오 감시를 파일 서버(Debian)에 기록하는 nvr 시스템을 가지고 있습니다. NVR 시스템이 올바르게 녹화하고 있는지 확인하고 녹화가 중지되면 알림을 보내주는 Nagios 플러그인을 만들었습니다. 문제는 내가 find 명령을 사용하고 있다는 것입니다.
find /srv/unifi-video/videos/ -name '*.ts' -mmin -10 | wc -l
Nagios는 400Gb가 넘는 파일을 검사하기 때문에 계속 시간 초과되어 "NRPE 소켓 시간 초과" 메시지를 보냅니다.
find 명령으로 전체 폴더가 아닌 지난 10분 이내에 생성된 파일만 검색하도록 할 수 있습니까?
답변1
코드가 이미 올바른 것으로 보이며 -mmin -10
결과가 '10분 이내에 수정됨'으로 범위가 좁혀졌습니다. 비디오/에 다른 항목(하위 디렉터리 등)도 포함되어 있는 경우 디렉터리를 무시하고 다음을 추가하여 파일에만 집중하면 시간을 절약할 수 있습니다 -type f
.
find /srv/unifi-video/videos/ -type f -name '*.ts' -mmin -10 | wc -l
nvr 시스템이 파일을 저장하는 방법을 더 잘 제어할 수 있다면 전용 디렉터리(예: video/ts)에 *.ts 파일만 저장하도록 하여 find는 ts 파일만 처리하고 다른 파일은 처리하지 않도록 하십시오.
다른 아이디어
활성화해야 하는 일부 로깅 기능이 있는지 확인하기 위해 nvr 시스템에 대한 문서를 살펴보시기 바랍니다. 로깅을 언급하는 이유는 find
파일 시스템 레코드를 확인하는 스크립트에 비해 로그를 읽는 스크립트를 작성하는 경우 상태 정보를 얻는 것이 더 빠르기 때문입니다.
답변2
먼저 사용된 최신 디렉토리를 찾은 다음 해당 디렉토리만 확인합니다.
find $(ls -rt /srv/unifi-video/videos/* | tail -1) -type f -name '*.ts' -mmin -10 | wc -l