프로그램 I/O 모니터링

프로그램 I/O 모니터링

여러 하위 프로세스를 생성하는 프로그램이 있습니다.

이 프로그램과 해당 서브루틴이 어떤 파일을 생성, 삭제, 수정하는지 알고 싶습니다.

  • inotifywait어떤 파일이 액세스되고 있는지 알려줄 수 있지만 어떤 프로세스가 해당 파일에 액세스하고 있는지는 알 수 없습니다. 모니터를 설정하려면 파일을 어디서 생성해야 하는지 알아야 합니다.

  • auditctl어떤 프로세스가 파일을 수정했는지 기록할 수 있지만, 기록을 설정하려면 파일이 어디에 있는지 알아야 합니다.

  • lsof모든 파일을 표시하지만 실시간 추적을 위한 좋은 솔루션은 아닌 것 같습니다.

어떤 파일이 작동되는지 알지 못한 채 프로그램의 파일 작동을 모니터링할 수 있는 기능이 있습니까?

답변1

Linux에서는 strace다음 유형의 이벤트를 모니터링할 수 있습니다.

strace -f -p <PID> -e trace=file

Solaris에서는 를 사용할 수 있습니다 . Solaris 11에 기본적으로 설치되는 dtraceDTraceToolkit 도구를 살펴보세요 .opensnoop/usr/dtrace/DTT/Bin/opensnoop

/usr/dtrace/DTT/Bin/opensnoop -p <pid>

답변2

Linux의 경우: Brendengreg의 perf-tools의 opensnoop이 작업을 수행해야 합니다. https://github.com/brendangregg/perf-tools

Solaris Dtrace의 경우 어쨌든 있습니다.

관련 정보