"updatedb" 프로그램이 왜 그렇게 빨리 실행되나요?

"updatedb" 프로그램이 왜 그렇게 빨리 실행되나요?

전체 디스크 검사를 수행하고 시스템의 모든 파일을 검사하는 프로그램이 있는 경우 실행하는 데 시간이 오래 걸리는 경우가 많습니다. 비교해 볼 때 updateb가 왜 그렇게 빨리 실행되나요?

답변1

대답은 사용 중인 버전에 따라 다르지만 locate대부분 그럴 가능성이 높습니다.mlocateupdatedb, 전체 검사를 피하여 빠르게 실행됩니다.

mlocate는 찾기/업데이트DB 구현입니다. "m"은 "병합"을 의미합니다. updateb는 기존 데이터베이스를 재사용하여 많은 파일 시스템을 다시 읽는 것을 방지하므로 updateb 속도가 빨라지고 시스템 캐시를 너무 많이 낭비하지 않습니다.

(데이터베이스는 각 디렉터리의 타임스탬프 ctime또는 mtime중 더 새로운 것을 저장합니다.)

대부분의 구현과 마찬가지로 updatedb무시 mlocate하도록 구성된 파일 시스템과 경로도 건너뜁니다. 기본적으로 아무것도 없지만 배포판은 일반적 으로 네트워크 파일 시스템, 가상 파일 시스템 등을 무시하는 mlocate기본 파일 시스템을 제공합니다 .updatedb.conf데비안 구성 파일예를 들어, 이는 데비안의 표준 관행이므로 GNU updatedb구성은 비슷해요).

답변2

수정 시간을 확인하는 것 외에도 mlocate/etc/updatedb.conf(및남자 업데이트b.conf):

  • 바인드 마운트
  • 특정 유형의 파일 시스템(9p, afs, bdev 등)
  • VCS 저장소 데이터베이스(.git, .hg 등)
  • 일부 하드코딩된 디렉토리(/media, /tmp, /var/spool/cups 등).

관련 정보