Initial commit: combine nas_tool, nas_webdav, sync-utils
This commit is contained in:
Executable
+129
@@ -0,0 +1,129 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Find What's in System Data (351GB)
|
||||
# System Data includes snapshots, caches, logs, VM files, etc.
|
||||
|
||||
set -e
|
||||
|
||||
echo "=== Find System Data Usage (351GB) ==="
|
||||
echo ""
|
||||
echo "System Data on macOS includes:"
|
||||
echo " - APFS snapshots"
|
||||
echo " - Time Machine local snapshots"
|
||||
echo " - Virtual memory swap files"
|
||||
echo " - System caches"
|
||||
echo " - Log files"
|
||||
echo " - Purgeable space"
|
||||
echo ""
|
||||
|
||||
TOTAL_FOUND=0
|
||||
|
||||
echo "🔍 Checking System Data Components:"
|
||||
echo ""
|
||||
|
||||
# 1. Check APFS snapshots
|
||||
echo "1. APFS Snapshots:"
|
||||
APFS_SNAPS=$(diskutil apfs listSnapshots / 2>/dev/null | grep -c "Name:" || echo "0")
|
||||
echo " Found: $APFS_SNAPS snapshot(s)"
|
||||
if [ "$APFS_SNAPS" -gt 0 ]; then
|
||||
diskutil apfs listSnapshots / 2>/dev/null | grep -E "Name|Purgeable" | head -4 | sed 's/^/ /'
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 2. Check Time Machine local snapshots
|
||||
echo "2. Time Machine Local Snapshots:"
|
||||
TM_SNAPS=$(tmutil listlocalsnapshots / 2>/dev/null | grep -v "Snapshots for disk" | grep -v "^$" | wc -l | tr -d ' ')
|
||||
echo " Found: $TM_SNAPS snapshot(s)"
|
||||
if [ "$TM_SNAPS" -gt 0 ]; then
|
||||
tmutil listlocalsnapshots / 2>/dev/null | grep -v "Snapshots for disk" | grep -v "^$" | sed 's/^/ - /'
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 3. Check virtual memory (swap files)
|
||||
echo "3. Virtual Memory (Swap Files):"
|
||||
VM_SIZE=$(sudo du -sh /private/var/vm 2>/dev/null | awk '{print $1}' || echo "0")
|
||||
echo " /private/var/vm: $VM_SIZE"
|
||||
echo ""
|
||||
|
||||
# 4. Check system caches
|
||||
echo "4. System Caches:"
|
||||
CACHE_SIZE=$(sudo du -sh /private/var/folders 2>/dev/null | awk '{print $1}' || echo "0")
|
||||
echo " /private/var/folders: $CACHE_SIZE"
|
||||
echo ""
|
||||
|
||||
# 5. Check logs
|
||||
echo "5. System Logs:"
|
||||
LOG_SIZE=$(sudo du -sh /Library/Logs /private/var/log 2>/dev/null 2>/dev/null | awk '{sum+=$1} END {print sum}' || echo "0")
|
||||
echo " Logs: ~$LOG_SIZE"
|
||||
echo ""
|
||||
|
||||
# 6. Check MobileBackups
|
||||
echo "6. MobileBackups (APFS Local Snapshots):"
|
||||
MB_SIZE=$(sudo du -sh /System/Volumes/Data/.MobileBackups /.MobileBackups 2>/dev/null | awk '{sum+=$1} END {print sum}' || echo "0")
|
||||
if [ "$MB_SIZE" != "0" ] && [ -n "$MB_SIZE" ]; then
|
||||
echo " MobileBackups: $MB_SIZE"
|
||||
else
|
||||
echo " MobileBackups: Not found or empty"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 7. Check /private/var
|
||||
echo "7. /private/var (System Data):"
|
||||
PVAR_SIZE=$(sudo du -sh /System/Volumes/Data/private/var 2>/dev/null | awk '{print $1}' || echo "0")
|
||||
echo " /private/var: $PVAR_SIZE"
|
||||
echo ""
|
||||
|
||||
# 8. Check for sparse bundles
|
||||
echo "8. Sparse Bundles (Disk Images):"
|
||||
SPARSE_COUNT=$(sudo find /System/Volumes/Data -maxdepth 3 -name "*.sparsebundle" -o -name "*.sparseimage" 2>/dev/null | wc -l | tr -d ' ')
|
||||
echo " Found: $SPARSE_COUNT sparse bundle(s)"
|
||||
if [ "$SPARSE_COUNT" -gt 0 ]; then
|
||||
sudo find /System/Volumes/Data -maxdepth 3 -name "*.sparsebundle" -o -name "*.sparseimage" 2>/dev/null | head -5 | while read bundle; do
|
||||
SIZE=$(sudo du -sh "$bundle" 2>/dev/null | awk '{print $1}')
|
||||
echo " - $bundle ($SIZE)"
|
||||
done
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 9. Check Library
|
||||
echo "9. System Library:"
|
||||
LIB_SIZE=$(sudo du -sh /System/Volumes/Data/Library 2>/dev/null | awk '{print $1}' || echo "0")
|
||||
echo " /Library: $LIB_SIZE"
|
||||
echo ""
|
||||
|
||||
echo "=== Summary ==="
|
||||
echo ""
|
||||
echo "System Data is 351GB. The components above may not add up to 351GB"
|
||||
echo "because System Data also includes:"
|
||||
echo " - Purgeable space (not shown in du)"
|
||||
echo " - APFS snapshot overhead"
|
||||
echo " - Reserved space"
|
||||
echo " - Other system files"
|
||||
echo ""
|
||||
|
||||
echo "🔧 To Reduce System Data:"
|
||||
echo ""
|
||||
echo "1. Delete Time Machine local snapshots:"
|
||||
if [ "$TM_SNAPS" -gt 0 ]; then
|
||||
echo " sudo tmutil deletelocalsnapshots <date>"
|
||||
else
|
||||
echo " (No snapshots found)"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
echo "2. Thin local snapshots:"
|
||||
echo " sudo tmutil thinlocalsnapshots / 1000000000 1"
|
||||
echo ""
|
||||
|
||||
echo "3. Remove Time Machine destination (prevents new snapshots):"
|
||||
echo " System Settings → Time Machine → Remove backup disk"
|
||||
echo ""
|
||||
|
||||
echo "4. Clean system caches:"
|
||||
echo " sudo rm -rf /private/var/folders/*"
|
||||
echo " (⚠️ Be careful - this may affect running apps)"
|
||||
echo ""
|
||||
|
||||
echo "5. Restart your Mac:"
|
||||
echo " This often releases purgeable space and snapshots"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user