프로그램의 I/O 모니터링

프로그램의 I/O 모니터링

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

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

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

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

  • lsof모든 파일을 알려 주지만 실시간 추적에는 좋은 솔루션이 아닌 것 같습니다.

어떤 파일이 조작될지 미리 알지 않고도 프로그램의 파일 조작을 모니터링할 수 있는 것이 있습니까?

답변1

Linux에서는 다음과 같은 종류의 이벤트를 모니터링하는 데 사용할 수 있습니다 strace.

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

솔라리스에서는 dtrace. opensnoop에서 Solaris 11에 기본적으로 설치되는 DTraceToolkit 도구를 살펴보십시오 /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가 어쨌든 있습니다.

관련 정보