iostat -x 1을 실행하면 가끔 5MB~10MB의 대규모 쓰기가 표시됩니다.
어떤 파일이 작성되고 있나요?
예를 들어, 최근 생성된 파일 크기가 5MB보다 큰지 확인하고 싶습니다.
어떻게 해야 하나요?
답변1
/path에서 X분 내에 수정된 파일 찾기
find /path -cmin -X
Sign before minute:
+ more than X minutes / over X minutes
- less than X minutes / within X minutes
(no sign) exact
예: 지난 30분 동안 수정된 /var/log(하위 디렉터리 포함)에서 모든 파일을 찾습니다.
find /var/log -cmin -30
/path에서 크기가 X인 파일 찾기
find /path -size +X<unit>
Sign before size:
+ larger than
- less than
(no sign) exact
<unit> :
b = block (default,512byte)
c = byte
w = word (2-byte)
k = kbyte
M = Mbyte
G = Gbyte
예: /var/log(하위 디렉터리 포함)에서 50k보다 큰 모든 파일 찾기
find /var/log -size +50k
결합하다
예: /var/log(하위 디렉터리 포함)에서 지난 30분 동안 수정된 50k보다 큰 모든 파일 찾기
find /var/log -cmin -30 -size +50k
네가 원한다면50,000개 포함결과에서 다음으로 변경하십시오.
find /var/log -cmin -30 -size +49k
폴리스티렌: find / .....
시간이 오래 걸릴 뿐만 아니라 일반적으로 검색에 적합하지 않은 디렉터리(/dev, /sys, /proc, ...)도 포함되므로 이 작업을 피하세요.
답변2
find
파일 시스템에서 파일을 적극적으로 검색하고 해당 타임스탬프를 신뢰해야 합니다 .
Linux 시스템의 최근 대안은 다음과 같습니다.inotify. 이 경우 커널은 파일 시스템의 변경 사항을 감시하며, inotifywait -m
이를 통해 실시간으로 무슨 일이 일어나고 있는지 알 수 있습니다.
큰 디렉터리 트리를 반복적으로 모니터링할 때는 inotify 메서드가 제대로 작동하지 않습니다. 이 경우 find
모니터링할 디렉터리를 알 수 있습니다.