응용 프로그램을 실행하여 어떤 파일이 생성, 읽기 또는 업데이트되는지 알 수 있는 방법이 있습니까? [복사]

응용 프로그램을 실행하여 어떤 파일이 생성, 읽기 또는 업데이트되는지 알 수 있는 방법이 있습니까? [복사]

실행 중인 애플리케이션에서 읽거나 생성하거나 업데이트한 모든 파일을 나열하고 싶습니다.

답변1

답은 안에 있다프로그램 I/O 모니터링많은 Unix opensnoop(Solaris뿐만 아니라)에서 사용할 수 있습니다.

답변2

프로세스에 대해 필요한 모든 정보를 한 곳에서 제공하는 앱이나 도구는 없습니다. 그러나 몇 가지 사실을 알면 Linux그만한 가치가 있습니다. 첫째, 모든 것은 하나이다 file. 정보를 얻기 위해 파일을 간단히 분류할 수 있기 때문에 이것은 좋습니다. 두 번째는 프로세스에 대해 필요한 모든 정보가 거기에 있다는 것입니다 /proc. 상위 프로세스가 있으면 PID거기에서 프로세스에 대해 원하는 것을 찾을 수 있습니다. 나는 추천할 것이다 man proc.

답변3

프로세스 ID를 가져옵니다( firefox예를 들어 두 번째는 검색 자체를 grep숨기는 것입니다 ).grep

ps aux | grep firefox | grep -v grep

다음과 같은 결과를 얻게 됩니다:

<login>  <pid> .... /path/to/program

그럼 당신은 file실행할 수 있습니다/proc/pid/fd/*

file /proc/1809/fd/*

다음과 같은 결과를 얻게 됩니다:

....
/proc/1809/fd/94:  symbolic link to `/home/pp/.mozilla/firefox/79bmloy7.default/formhistory.sqlite' 
/proc/1809/fd/96:  symbolic link to `/home/pp/.mozilla/firefox/79bmloy7.default/signons.sqlite' 
....

관련 정보