41.5. SystemTap을 사용하여 파일에 읽기 및 쓰기 모니터링
inodewatch.stp SystemTap 스크립트를 사용하여 파일의 읽기 및 쓰기를 실시간으로 모니터링할 수 있습니다.
사전 요구 사항
- Systemtap 설치에 설명된 대로 SystemTap을 설치했습니다.
절차
-
inodewatch.stp
스크립트를 실행합니다.
# stap --example inodewatch.stp 'argument1' 'argument2' 'argument3'
inodewatch.stp
스크립트는 세 가지 명령줄 인수를 사용합니다.
- 파일의 주요 장치 번호입니다.
- 파일의 부 장치 번호입니다.
- 파일의 inode 번호입니다.
다음 번호를 사용하여 얻을 수 있습니다.
# stat -c '%D %i' filename
여기서 filename 은 절대 경로입니다.
다음 예제를 고려하십시오.
# stat -c '%D %i' /etc/crontab
출력은 다음과 같아야 합니다.
805 1078319
다음과 같습니다.
-
805
는 base-16 (hexadecimal) 장치 번호입니다. 마지막 두 자리는 부 장치 번호이며 나머지 숫자는 주 번호입니다. -
1078319
는 inode 번호입니다.
/etc/crontab
모니터링을 시작하려면 다음을 실행합니다.
# stap inodewatch.stp 0x8 0x05 1078319
처음 두 인수에서는 base-16 숫자에 0x 접두사를 사용해야 합니다.
출력에는 다음이 포함됩니다.
- 읽기 또는 쓰기를 수행하는 프로세스의 이름 및 ID
-
실행 중인 함수(v
fs_read
또는vfs_write
) - 커널 장치 번호
이 예제의 출력은 다음과 같아야 합니다.
cat(16437) vfs_read 0x800005/1078319 cat(16437) vfs_read 0x800005/1078319