안녕하세요 이웃님들 ^.^
좋은 아침 입니다.
오늘은 리눅스 성능 툴 중 하니인 opensnoop 사용 방법에 대해서 포스팅을 해보려고 합니다.
opensnoop는 리눅스 시스템에서 파일 오픈 이벤트를 실시간으로 모니터링하는 도구입니다.
opensnoop툴을 이용하여 어떤 프로세스가 어떤 파일을 오픈하는지 실시간으로 확인할 수 있거든요.
그럼 opensnoop를 어떻게 사용하는지 살펴 봅시다.
사용을 하기 위해서는 우선 설치를 해야겠지요?
opensnoop는 BPF(Berkeley Packet Filter)를 사용하여 파일 오픈 이벤트를 모니터링하는 도구여서 이 도구는 bcc(BPF Compiler Collection)의 일부이거든요. 그래서 opensnoop를 설치하려면 먼저 bcc를 설치해야 합니다.
Ubuntu/Debian 기준으로 설치는 아래의 명령을 통해서 설치가 가능합니다.
ubuntu@DESKTOP-H5OIPJC:~$ sudo apt-get install bpfcc-tools
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
ieee-data libbpfcc python3-bpfcc python3-netaddr
Suggested packages:
ipython3 python-netaddr-docs
The following NEW packages will be installed:
bpfcc-tools ieee-data libbpfcc python3-bpfcc python3-netaddr
0 upgraded, 5 newly installed, 0 to remove and 8 not upgraded.
Need to get 17.4 MB of archives.
After this operation, 74.5 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu focal/universe amd64 libbpfcc amd64 0.12.0-2 [14.9 MB]
Get:2 http://archive.ubuntu.com/ubuntu focal/universe amd64 python3-bpfcc all 0.12.0-2 [31.3 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal/main amd64 ieee-data all 20180805.1 [1589 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 python3-netaddr all 0.7.19-3ubuntu1 [236 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal/universe amd64 bpfcc-tools all 0.12.0-2 [579 kB]
Fetched 17.4 MB in 12s (1439 kB/s)
Selecting previously unselected package libbpfcc.
(Reading database ... 53666 files and directories currently installed.)
Preparing to unpack .../libbpfcc_0.12.0-2_amd64.deb ...
Unpacking libbpfcc (0.12.0-2) ...
Selecting previously unselected package python3-bpfcc.
Preparing to unpack .../python3-bpfcc_0.12.0-2_all.deb ...
Unpacking python3-bpfcc (0.12.0-2) ...
Selecting previously unselected package ieee-data.
Preparing to unpack .../ieee-data_20180805.1_all.deb ...
설치를 했으면 사용을 해봐야겠죠?
실행은 아래의 명령으로 실행을 하면 됩니다.
sudo opensnoop
그럼 사용방법을 알아봐겠지요?
opensnoop은 아래의 옵션을 제공을 합니다.
-n 또는 --name: 모니터링할 파일 이름을 지정합니다.
-p 또는 --pid: 특정 프로세스 ID(PID)만 모니터링합니다.
-t 또는 --timestamp: 이벤트 발생 시간을 표시합니다.
-e 또는 --extended: 더 자세한 정보를 표시합니다.
그럼 사용 예제를 보면
우선 한개의 터미널에서 sudo opensnoop으로 툴을 실행을 시킵니다.
sudo opensnoop
터머널을 하나 더 열고.. 파일을 여는 명령을 실행을 해봅니다.
touch test.txt
그럼 아래와 같이 opensnoop 터미널 창에서 파일이 열렸다는 메세지가 보일겁니다.
PID COMM FD ERR PATH
1000 touch 3 0 /home/user/new_file.txt
이 출력에서 PID는 프로세스 ID, COMM은 프로세스 이름, FD는 파일 디스크립터, PATH는 열린 파일의 경로를 나타냅니다. 위의 예제에서는 touch 명령어로 새 파일을 만든 것이므로 해당 명령어에 대한 정보가 표시됩니다.
그럼 유용한 정보가 되었기를 바라면서 오늘은 이만 ~~~
좋은 하루 되세요
'리눅스 일반' 카테고리의 다른 글
[리눅스] fatrace 사용방법 (73) | 2024.04.05 |
---|---|
[리눅스] lsof 사용 방법 (87) | 2024.03.30 |
[리눅스] 성능 툴 ltrace 사용 방법 (87) | 2024.03.23 |
[리눅스] 성능 분석 툴 Strace 사용 방법 (102) | 2024.03.21 |
[리눅스] 성능 감시 Tool - ss 사용 (72) | 2023.04.16 |