파일 잠금을 추적하는 방법(디렉터리별)

파일 잠금을 추적하는 방법(디렉터리별)

저는 Linux를 처음 접했고 이 작업을 수행하는 방법을 모릅니다.

디렉토리가 있고 디렉토리 내의 파일이 파일 잠금을 획득하는 시기와 해제되는 시기를 모니터링(셸로 출력)하고 싶습니다.

파일이 언제 생성되는지 등 다른 사항을 아는 것은 좋지만 주로 잠금에 관심이 있습니다.

어떤 프로세스가 잠금을 수행했는지 알 필요는 없습니다. 잠금이 발생한 순서가 더 중요합니다.

나는 이 목적을 위한 몇 가지 도구가 있다고 확신합니다(이미 설치했지만 여기에 질문하기로 결정하기 전에는 설치 dtrace하지 않았습니다 ).--help

어떤 조언이라도 진심으로 감사드립니다. 중요한 경우 Fedora 14 상자를 실행하고 있습니다.

답변1

당신이 원하는 것을 얻을 수 있는지 확인하지는 않았지만 가장 먼저 시도해 볼 것은감사 하위 시스템. auditd데몬이 시작되었는지 확인한 다음 사용하십시오.auditctl기록할 내용을 구성합니다. 일반적인 파일 시스템 액세스의 경우 다음을 수행합니다.

auditctl -w /path/to/directory
auditctl -a exit,always -S fnctl -S open -S flock -F dir=/path/to/directory

-S옵션을 사용하면 특정 시스템 호출에 대한 로깅을 제한할 수 있습니다. 이러한 로그는 /var/log/audit/audit.logDebian 및 Fedora에 나타납니다.

파일을 잠글 수 있는 프로세스를 알고 있는 경우 strace해당 프로세스에서 실행하는 것을 고려하십시오(파일 관련 시스템 호출만 확인하거나 특정 시스템 호출로 추가로 제한).

strace -s9999 -o foo.strace -e file foo

관련 정보