
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
監視するディレクトリがわかります。