81 lines
2.5 KiB
Bash
Executable File
81 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Check Real Disk Space - Verify what's actually using space
|
|
# Sometimes the snapshot is a ghost but space is actually available
|
|
|
|
set -e
|
|
|
|
echo "=== Real Disk Space Analysis ==="
|
|
echo ""
|
|
|
|
# Multiple methods to check space
|
|
echo "Method 1: df command:"
|
|
df -h / | tail -1
|
|
echo ""
|
|
|
|
echo "Method 2: diskutil info:"
|
|
diskutil info / | grep -E "Volume (Free|Used|Total) Space" | sed 's/^/ /'
|
|
echo ""
|
|
|
|
# Check if snapshot actually exists
|
|
echo "Method 3: APFS Snapshot Check:"
|
|
APFS_TM_SNAPS=$(diskutil apfs listSnapshots / 2>/dev/null | grep -i "timemachine" || echo "None")
|
|
if [ "$APFS_TM_SNAPS" = "None" ]; then
|
|
echo " ✅ No Time Machine snapshot in APFS (ghost entry only)"
|
|
else
|
|
echo " ⚠️ Found: $APFS_TM_SNAPS"
|
|
fi
|
|
echo ""
|
|
|
|
# Check Time Machine status
|
|
echo "Method 4: Time Machine Status:"
|
|
TM_RUNNING=$(tmutil status 2>/dev/null | grep "Running" | awk '{print $3}' | tr -d ';')
|
|
if [ "$TM_RUNNING" = "1" ]; then
|
|
echo " ⚠️ Time Machine is running (may be creating new snapshots)"
|
|
else
|
|
echo " ✅ Time Machine is not running"
|
|
fi
|
|
echo ""
|
|
|
|
# Calculate actual space
|
|
FREE_KB=$(df / | tail -1 | awk '{print $4}')
|
|
FREE_GB=$(echo "scale=2; $FREE_KB / 1024 / 1024" | bc)
|
|
|
|
echo "=== Summary ==="
|
|
echo " Current free space: ${FREE_GB}GB"
|
|
echo ""
|
|
|
|
if (( $(echo "$FREE_GB < 5" | bc -l) )); then
|
|
echo "⚠️ Still low on space. The ghost snapshot entry is not the issue."
|
|
echo ""
|
|
echo "The real issue: Your disk is actually full (or nearly full)."
|
|
echo ""
|
|
echo "The 20GB from deleted files may have been:"
|
|
echo " 1. Used by Time Machine creating a new snapshot"
|
|
echo " 2. Used by other processes/files"
|
|
echo " 3. Actually freed but macOS hasn't updated the count yet"
|
|
echo ""
|
|
echo "Solutions:"
|
|
echo ""
|
|
echo "1. **Restart your Mac** - This will:"
|
|
echo " - Release any held snapshots"
|
|
echo " - Update disk space accounting"
|
|
echo " - Clear stuck processes"
|
|
echo ""
|
|
echo "2. Check what's really using space:"
|
|
echo " du -h -d 1 ~ | sort -hr | head -20"
|
|
echo ""
|
|
echo "3. Clean up large files:"
|
|
echo " - Downloads folder: $(du -sh ~/Downloads 2>/dev/null | awk '{print $1}')"
|
|
echo " - Library/Caches: $(du -sh ~/Library/Caches 2>/dev/null | awk '{print $1}')"
|
|
echo ""
|
|
echo "4. The ghost snapshot entry is harmless - ignore it."
|
|
echo " It will clear when Time Machine successfully backs up."
|
|
else
|
|
echo "✅ You have ${FREE_GB}GB free - this should be enough!"
|
|
echo ""
|
|
echo "The ghost snapshot entry can be ignored - it's not using space."
|
|
fi
|
|
|
|
echo ""
|