파일을 생성하는 프로그램/프로세스를 확인하는 방법은 무엇입니까? [복사]

파일을 생성하는 프로그램/프로세스를 확인하는 방법은 무엇입니까? [복사]

삭제한 후에도 내 홈 디렉토리에 자동으로 나타나는 파일이 있다고 가정해 보겠습니다. 그것에 대해 아무것도 모르는데, 그 파일을 거기에 보관하는 것이 무엇인지 알아낼 수 있는 방법이 있습니까? 이를 생성한 프로그램/프로세스를 추적할 수 있는 방법이 있습니까?

답변1

sysdig한 가지 옵션은 오픈 소스 시스템 모니터링 애플리케이션을 사용하는 것입니다 . 이를 사용하면 파일 활동을 이름별로 모니터링할 수 있습니다. 어떤 프로세스가 다음 이름의 파일을 생성하는지 확인하고 싶다고 가정해 보겠습니다 /tmp/example.txt.

# sysdig fd.name=/tmp/example.txt
567335 16:18:39.654437223 0 touch (5470) < openat fd=3(<f>/tmp/example.txt) dirfd=-100(AT_FDCWD) name=/tmp/example.txt flags=70(O_NONBLOCK|O_CREAT|O_WRONLY) mode=0666
567336 16:18:39.654438248 0 touch (5470) > dup fd=3(<f>/tmp/example.txt)
567337 16:18:39.654438592 0 touch (5470) < dup res=0(<f>/tmp/example.txt)
567338 16:18:39.654439629 0 touch (5470) > close fd=3(<f>/tmp/example.txt)
567339 16:18:39.654439764 0 touch (5470) < close res=0
567342 16:18:39.654441958 0 touch (5470) > close fd=0(<f>/tmp/example.txt)
567343 16:18:39.654442111 0 touch (5470) < close res=0

이 출력에서 ​​pid 5470이라는 프로세스에 touch파일이 열려 있음을 알 수 있습니다.

더 많은 정보를 원할 경우 시스템 호출 추적을 수집하는 "캡처 모드"에서 실행할 수 있습니다.

# sysdig -w /tmp/dumpfile.scap

그런 다음 파일이 생성될 때까지 기다린 다음 중지 sysdig하고 실행합니다.

# csysdig -r /tmp/dumpfile.scap

이를 통해 일어난 모든 일을 탐색할 수 있습니다. 을 누르고 <F2>선택하고 Files파일 <F4>이름 검색을 누른 다음 <F6>"dig"를 누릅니다(위 명령과 유사한 출력이 표시됨). 이렇게 하면 동일한 방법을 사용하여 실제로 파일을 생성한 프로세스에 대한 정보를 찾을 수 있습니다.

원하는 경우 이라는 GUI 버전이 있습니다 csysdig.sysdig-inspect

관련 정보