UJP - ディスクフルに近くなったので不要ファイルを消そうとしたら35万ファイルもあった.

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

  • カテゴリ mac mini の最新配信
  • RSS
  • RDF
  • ATOM

ブログ - ディスクフルに近くなったので不要ファイルを消そうとしたら35万ファイルもあった.

ディスクフルに近くなったので不要ファイルを消そうとしたら35万ファイルもあった.

カテゴリ : 
Apple » mac mini » 2011 server
ブロガー : 
ujpblog 2026/5/26 11:38
 1年前,crucial MX200の500GBが故障して交換したサーバのストレージ,空き容量が少なくなってきた.


 MRTGでみると綺麗な右肩上がり. 500GBのストレージだけど100GB程度から400GBほど増えてる.
 このmacは防犯カメラからのメール通知情報をアーカイブ保管しているので,定期的クリーニング(除去)が必要なのでアーカイブファイルを移動させることにしたのだけど,そのアーカイブ,調べてみても60GBしかない. 340GB程度のファイルがどこにあるかわからない.

 何がどこにあるのか調べてみることにした. まずはmacOSが持っているシステムレポート?のストレージ情報から.


 システムが使っているとなっている. これだけだと不明なので,管理ボタンを押して確認.


 やっぱり結局「システム」が使っている事になって詳細は不明.

 ちなみにこの不要になったファイルを削除する機能でも,大きいファイル,ダウンロードファイルでも削除できそうなファイルは見つからなかった.

 どこになんのファイルがあるかを視覚化してみせてくれるDisk Inventory Xを紹介されたのでインストール...不要でダウンロードして起動してみた.


 起動してみたかけど調査が終わらない.

 仕方ないので,コマンドを使って地道に調べる事に.
 rootユーザに成り代わって,普通にルートディレクトリからduで調査してみた.
mac:/ root# du -sh *🆑
1.3G	Applications
 29G	Library
3.0K	Network
6.4G	System
 37G	Users
458G	Volumes
2.5M	bin
  0B	cores
4.5K	dev
4.0K	etc
1.0K	home
4.0K	installer.failurerequests
1.0K	net
du: private/var/db/ConfigurationProfiles/Store: Operation not permitted
du: private/var/folders/5z/mkkqj8l13yg32k4lrxlh9cgr0000gr/0/com.apple.nsurlsessiond: Operation not permitted
du: private/var/folders/5z/mkkqj8l13yg32k4lrxlh9cgr0000gr/0/com.apple.routined: Operation not permitted
du: private/var/folders/sq/54r_jgb93dd4q95j7bdvb30r0000gn/0/com.apple.nsurlsessiond: Operation not permitted
du: private/var/folders/sq/54r_jgb93dd4q95j7bdvb30r0000gn/0/com.apple.routined: Operation not permitted
du: private/var/folders/sq/54r_jgb93dd4q95j7bdvb30r0000gn/0/SafariFamily: Operation not permitted
du: private/var/folders/sq/54r_jgb93dd4q95j7bdvb30r0000gn/C/com.apple.WebKit.Networking.Sandbox: Operation not permitted
du: private/var/folders/sq/54r_jgb93dd4q95j7bdvb30r0000gn/C/com.apple.WebKit.WebContent.Sandbox: Operation not permitted

du: private/var/folders/zz/zyxvpxvq6csfxvn_n00000y800007k/0/com.apple.nsurlsessiond: Operation not permitted
368G	private🈁
1.1M	sbin
4.0K	tmp
3.9G	usr
4.0K	var
mac:/ root#
 /privateディレクトリ配下を確認.
mac:/ root# cd private🆑
mac:private root# ls -la🆑
total 0
drwxr-xr-x   6 root  wheel   204 Jun  3  2025 .
drwxrwxr-t  35 root  admin  1258 May 26 01:54 ..
drwxr-xr-x  96 root  wheel  3264 May 26 01:12 etc
drwxr-xr-x   3 root  wheel   102 Jun  3  2025 tftpboot
drwxrwxrwt  56 root  wheel  1904 May 26 03:14 tmp
drwxr-xr-x  29 root  wheel   986 Jun  3  2025 var
mac:private root#
 直感でtmpが怪しいと考えて確認.
mac:var root# sudo du -sh /private/tmp/* | sort -rh | head -n 10🆑
264M	/private/tmp/build_hd_index.3z3pRaKBlSG6E3TX
 60M	/private/tmp/StringTable.Names.dDyFJpc
 48M	/private/tmp/build_hd_index.wBkUjg6lBdkjwJZT
 46M	/private/tmp/build_hd_index.jJUp3R7Of9BaO1cq
 46M	/private/tmp/build_hd_index.UHPZAd0KNhQShiQ1
 35M	/private/tmp/StringTable.Names.njtCUQH
 34M	/private/tmp/StringTable.Names.zvaqjCE
 34M	/private/tmp/StringTable.Names.ezd1AZv
 32M	/private/tmp/build_hd_index.yw3O5IkN9a2wc7T8
 23M	/private/tmp/StringTable.Names.L3WU0kD
mac:var root#
 大きめのファイルはあるものの,1GB程度だった.
 次に/private/var/tmpを確認.
mac:var root# sudo du -sh /private/var/tmp/* | sort -rh | head -n 10🈁
^C

mac:var root#
 レスポンスがない.どうもファイル数が多い模様.
 そんな時はfindコマンドでファイル数を確認.
mac:var root# sudo find /private/var/tmp -maxdepth 1 | awk -F/ '{print $NF}' | sed -E 's/[0-9_-]+/X/g' | sort | uniq -c | sort -rn | head -n 20🆑

357256 X.eml
356473 X.zip
  20 iTermX.socket.X
   1 tmp
   1 quicklookdXexitXACXFFXDCXCXAXEAX.tailspin
   1 filesystemui.socket
mac:var root#
 X.emlというファイルが約36万ファイル.X.zipというファイルもほぼ同じ数存在している.70万ファイル以上あってこれがストレージ空き容量を圧迫し,結果的にmacのレスポンス性能を下げている原因の模様.
 tmp以下のファイルなので,OS再起動すれば消えそうな気がする.
 ちなみに,uptimeを確認するとこれ.
mac:var root# uptime🆑
11:14  up 244 days,  7:42, 7 users, load averages: 1.97 2.05 2.08
mac:var root#
 長い方かな.

 サーバを再起動せずにこのファイルを消すとなると,rmコマンドだとArgument list too longがでてエラーになるので,findコマンドを使って消すこととする.
mac:var root# sudo find /private/var/tmp -maxdepth 1 -name "*.eml" -delete
mac:var root# sudo find /private/var/tmp -maxdepth 1 -name "*.zip" -delete
mac:var root#
 時間は20分程度かかった.
 消えたかどうか確認.
mac:var root# sudo find /private/var/tmp -maxdepth 2 | cut -d/ -f1-5 | sort | uniq -c | sort -rn | head -n 10🆑
   1 /private/var/tmp/quicklookd_exit_7AC643FF-AAAA-46C2-A516-XXXX0609ZZZZ.tailspin
   1 /private/var/tmp/iTerm2.socket.94829
   1 /private/var/tmp/iTerm2.socket.93570
   1 /private/var/tmp/iTerm2.socket.9070
   1 /private/var/tmp/iTerm2.socket.903
   1 /private/var/tmp/iTerm2.socket.902
   1 /private/var/tmp/iTerm2.socket.900
   1 /private/var/tmp/iTerm2.socket.8505
   1 /private/var/tmp/iTerm2.socket.8495
   1 /private/var/tmp/iTerm2.socket.8492
mac:var root#
 調べると,これはmacOS High Sierraのバグで,High Sierraから導入されたファイルシステムのAFSとbuild_hd_indexというファイルのインデックス作成を行う機能でこのゴミファイルを作ってしまう模様. 最近のOSでは解消されているそう.
引用:
 High Sierraの頃は、/private/var/tmp というシステム共通の場所にさまざまなアプリ(Mailなど)が直接一時ファイルを書き込んでいたため、アプリがクラッシュした際に「誰のゴミか分からずシステムも消せない」という状態に陥っていました。現在のmacOSでは、アプリはシステム共通の場所ではなく、アプリごとに完全に隔離された専用のコンテナ領域(~/Library/Containers/ などの内部)に一時ファイルを作るようセキュリティ構造(サンドボックス)が強化されました。万が一アプリがクラッシュしても、そのアプリが次に起動した際や、OSの自動メンテナンスによって、その隔離領域ごと安全かつ確実に掃除される仕組みに変わっています。
 不要ファイルを消すためのシェル.DeleteTemp.shを準備.
echo "=== 処理を開始します(root権限) ==="
echo "1. 削除前のファイル数をカウント中..."
before_eml=$(find /private/var/tmp -maxdepth 1 -name "*.eml" -mtime +0 | wc -l)
before_zip=$(find /private/var/tmp -maxdepth 1 -name "*.zip" -mtime +0 | wc -l)

echo "2. 1日前以上の古いファイルを削除中(数分かかる場合があります)..."
find /private/var/tmp -maxdepth 1 \( -name "*.eml" -o -name "*.zip" \) -mtime +0 -delete

echo "3. 削除後のファイル数をカウント中..."
after_eml=$(find /private/var/tmp -maxdepth 1 -name "*.eml" -mtime +0 | wc -l)
after_zip=$(find /private/var/tmp -maxdepth 1 -name "*.zip" -mtime +0 | wc -l)

echo ""
echo "=== 作業結果レポート ==="
echo "【.eml ファイル (1日前以上)】"
echo "  作業前: ${before_eml} 個 -> 作業後: ${after_eml} 個 (削除数: $((before_eml - after_eml)) 個)"
echo "【.zip ファイル (1日前以上)】"
echo "  作業前: ${before_zip} 個 -> 作業後: ${after_zip} 個 (削除数: $((before_zip - after_zip)) 個)"
echo "========================"
 実行してみた.
mac:bin root# ./DeleteTemp.sh🆑
=== 処理を開始します(root権限) ===
1. 削除前のファイル数をカウント中...
2. 1日前以上の古いファイルを削除中(数分かかる場合があります)...
3. 削除後のファイル数をカウント中...

=== 作業結果レポート ===
【.eml ファイル (1日前以上)】
  作業前:      528 個 -> 作業後:        0 個 (削除数: 528 個)
【.zip ファイル (1日前以上)】
  作業前:        0 個 -> 作業後:        0 個 (削除数: 0 個)
========================
mac:bin root#
 これをcrontabに登録しておくとクリーニングしてくれる事に.

トラックバック


広告スペース
Google