2026년 4월 19일 오후 2시(EDT) 게시됨
기술 출판 분야에서 Afam의 경험은 Make Tech Easier에서 근무하던 2018년으로 거슬러 올라갑니다. 수년에 걸쳐 그는 Windows, Linux 및 오픈 소스 도구를 다루는 고품질 가이드, 리뷰, 팁 및 설명 기사를 게시하는 것으로 명성을 쌓아왔습니다. 그의 작업은 Technical Ustad, Windows Report, Guiding Tech, Alphr 및 Next of Windows를 포함한 최고의 웹사이트에 소개되었습니다.
그는 컴퓨터 공학 1학위를 보유하고 있으며 Fuzo Tech YouTube 채널에 게시된 주제에 대한 몇 가지 팁, 비디오 및 튜토리얼을 통해 데이터 개인 정보 보호 및 보안에 대한 강력한 옹호자입니다.
그는 일하지 않을 때 가족과 함께 시간을 보내거나 자전거를 타거나 정원을 가꾸는 것을 좋아합니다.
Linux를 설정하면 일반적으로 예상대로 실행됩니다. 백그라운드 어딘가에서 파일을 생성하고, 구성을 업데이트하고, 캐시를 구축합니다. 하지만 저는 손상된 것이 없는 경우 이러한 프로세스를 살펴보기 위해 내부를 들여다보는 경우가 거의 없습니다.
일단은 다르게 해보고 싶었어요. 나는 백그라운드에서 일어나는 모든 일을 지켜보기로 결정했습니다. 그래서 inotifywait 를 사용했습니다. 실시간 활동을 모니터링하는 명령입니다. 나는 이 명령이 얼마나 강력한지 보고 놀랐다. 가장 간단한 작업조차도 여러 가지 백그라운드 작업을 생성할 수 있는 방법을 보여주었습니다.
모든 것을 추적하는 Linux 기능
파일 활동은 생각보다 모니터링하기 쉽습니다
Inotify는 Linux 버전 2.6.13에 추가된 커널 수준 하위 시스템입니다. 이 기능은 실시간 파일 시스템 이벤트를 캡처하고 발생 시 보고합니다. 이는 단순히 커널이 변경 사항을 알리는 것입니다.
파일 생성, 수정, 삭제, 액세스 및 이동을 지속적으로 추적하여 이러한 이벤트를 보고합니다. inotify를 사용하면서 좋았던 점 일반적인 사용 중에 최소한의 오버헤드만 추가하는 방법입니다. 이는 단순히 커널이 이미 생성한 신호를 보고하기 때문입니다. 백그라운드 스캐너를 실행하고 있지 않습니다.
inotify와 직접 상호작용할 수 없습니다. , 이것이 바로 inotify-tools가 필요한 이유입니다. 터미널에서 커널 기능을 사용할 수 있게 해주는 두 가지 사용자 공간 유틸리티를 제공합니다.
<머리> <일>구성요소
<일>하는 일
이노티파이
파일 시스템 이벤트를 생성하는 커널 하위 시스템
inotify기다려
해당 이벤트를 터미널로 실시간 스트리밍
이노티파이워치
설정된 기간 동안 각 이벤트 유형이 몇 번 발생했는지 계산
이러한 구성 요소 중 inotifywait 실시간 모니터링에 접근할 수 있는 옵션입니다.
앱을 실시간으로 볼 수 있는 단 하나의 명령
0에서 초 단위로 실시간 파일 추적까지
inotify가 이미 커널에 있으므로 시작하려면 inotify-tools를 설정하는 명령 하나만 필요합니다.
<머리> <일>배포판
<일>명령
우분투/데비안
sudo apt install inotify-tools
페도라
sudo dnf 설치 inotify-도구
아치 리눅스
sudo pacman -S inotify-tools
오픈수세
sudo zypper 설치 inotify-도구
설치가 완료되면 inotifywait --version를 실행하여 사용할 준비가 되었는지 확인할 수 있습니다. 를 실행한 다음 inotifywait -m ~/Documents을 실행합니다. 명령이 실행될 때 첫 번째 이벤트 이후 종료되지 않도록 -m 플래그를 포함하는 것이 중요합니다. 즉시 디렉터리(이 경우에는 "Documents" 디렉터리)의 변경 사항이 표시되기 시작합니다. 표시되는 이벤트는 감시 디렉터리/이벤트 유형/이벤트를 트리거한 파일 형식을 따릅니다. 예를 들어 /home/user/Documents/ MODIFY Notes.txt가 있을 수 있습니다. .
이벤트가 발생하면 몇 가지 플래그를 사용하여 보고서를 더욱 유용하게 만들 수 있습니다.
<머리> <일>깃발
<일>목적
-m
한 번의 이벤트 후에 종료하지 않고 계속 실행
-r
모든 하위 디렉터리를 재귀적으로 감시
-e
특정 이벤트 유형을 필터링합니다(예:-e 생성, 수정, 삭제).
--형식
가독성이나 로깅을 위해 출력 구조 제어
--timefmt
각 이벤트에 타임스탬프 추가
다음은 사용하게 될 기본 명령입니다. 그들에게 실제적인 것을 알려 주기만 하면 됩니다.
실제 앱에서 사용하면서 실제로 본 것
일반적으로 알아채지 못하는 파일 동작
내 컴퓨터에서 어떤 일이 일어나는지 확인하기 위해 inotifywait를 가리키면서 평소와 같이 앱을 사용했습니다. 특정 디렉토리에. 실제로 나를 놀라게 한 것은 그것이 나에게 보여준 것이 아니라 엄청난 양의 백그라운드 활동이었습니다.
저는 텍스트 편집기로 시작했습니다. 내 문서 폴더를 모니터링하는 동안 파일을 저장했습니다. 나는 하나의 이벤트에 대한 알림을 받을 것으로 예상했지만 내가 받은 것은 시퀀스였습니다. 임시 파일이 생성되고 moved_from이 뒤따르는 것으로 나타났습니다. 및 이동_to 이벤트. 이 모든 과정에서 내 텍스트 편집기는 원본 파일을 직접 건드리지 않았습니다. 파일을 만들면서 교체하기 전에 일회용 파일에 썼습니다. 이렇게 하면 쓰기 도중에 문제가 발생하더라도 원본 파일이 그대로 유지됩니다.
그런 다음 ~/.mozilla/firefox/ 로 전환했습니다. 내가 Firefox를 모니터링한 디렉토리입니다. 브라우저를 시작하자마자 쓰기가 즉시 급증했습니다. 몇 초 안에 places.sqlite 가 생겼습니다. 북마크 및 검색 기록을 보려면 sessionstore.jsonlz4 열린 탭의 경우. 하지만 제가 흥미로웠던 점은 브라우저가 유휴 상태인 동안에도 계속해서 쓰기가 발생한다는 것입니다. 이는 정상적인 브라우저 동작인 것 같습니다. Chrome에서 비슷한 유휴 쓰기가 발생하는 것을 발견했습니다. Firefox의 상당한 양의 백그라운드 활동은 세션 데이터를 디스크에 지속적으로 플러시하여 충돌 후 탭을 복구할 수 있도록 하기 때문에 중요합니다.
그러나 이 중에서 패키지 설치가 가장 많은 소음을 발생시켰습니다. apt install을 실행했습니다. /var/lib/dpkg/를 보는 동안 , 그리고 lock-frontend 파일이 먼저 나타나는 것을 보았습니다. 이는 패키지 작업이 동시에 실행되지 않도록 하는 중요한 메커니즘입니다. 그 이후에는 패키지 데이터베이스 전반에 걸쳐 너무 많은 쓰기가 발생했습니다.
내가 관찰한 세 디렉터리에서 일관된 점은 파일 정리 작업이 단 한 번도 없었다는 것입니다. 모두 레이어와 함께 제공됩니다.
실생활에서 정말 유용하게 쓰일 때
이것은 실험으로 시작되었지만 inotifywait가 제가 자연스럽게 접근하는 도구가 되기까지는 몇 번의 세션밖에 걸리지 않았습니다. 구성 문제를 디버깅하는 데 중요한 도구입니다. 구성 디렉터리를 관찰하고 덮어쓴 파일을 기록해 두면 설정이 계속 재설정될 때 어느 정도 명확하게 알 수 있습니다.
익숙하지 않은 소프트웨어를 평가해야 할 때도 이 방법을 사용합니다. 이제 소프트웨어가 무엇을 만지는지 볼 수 있기 때문에 더 이상 소프트웨어가 데이터를 저장하는 위치를 추측할 필요가 없습니다. 이는 어떤 앱이 예상 디렉터리 외부에 글을 쓰는지 파악하는 쉬운 방법입니다.
그러나 inotifywait를 사용하는 경우 매우 시끄러운 출력에 대비하십시오. 두 번째 제한점은 변경된 내용을 보여주더라도 그 이유를 설명하지 못한다는 것입니다. 즉, Linux 관리에 사용하는 가장 유용한 명령 중 하나가 되었습니다.