Initial commit: combine nas_tool, nas_webdav, sync-utils
This commit is contained in:
Executable
+100
@@ -0,0 +1,100 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Force Purge System Data (351GB)
|
||||
# The 351GB is likely "purgeable" space that macOS won't release until forced
|
||||
|
||||
set -e
|
||||
|
||||
echo "=== Force Purge System Data (351GB) ==="
|
||||
echo ""
|
||||
echo "The 351GB in System Data is likely PURGEABLE space."
|
||||
echo "macOS shows it as 'used' but it's actually available."
|
||||
echo "We'll force macOS to release it by creating a large file."
|
||||
echo ""
|
||||
|
||||
FREE_SPACE_BEFORE=$(df / | tail -1 | awk '{print $4}')
|
||||
FREE_SPACE_GB_BEFORE=$(echo "scale=2; $FREE_SPACE_BEFORE / 1024 / 1024" | bc)
|
||||
echo "Current free space: ${FREE_SPACE_GB_BEFORE}GB"
|
||||
echo ""
|
||||
|
||||
echo "🔧 Method: Create a large file to force purge..."
|
||||
echo ""
|
||||
echo " This will:"
|
||||
echo " 1. Create a 50GB file (forces macOS to purge space)"
|
||||
echo " 2. Delete it immediately"
|
||||
echo " 3. This should release the purgeable space"
|
||||
echo ""
|
||||
|
||||
read -p "Proceed? This is safe - file will be deleted immediately. (y/n) " -n 1 -r
|
||||
echo ""
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "Cancelled."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Creating 50GB test file to force purge..."
|
||||
echo " (This may take a few minutes)"
|
||||
echo ""
|
||||
|
||||
# Create large file to force purge
|
||||
TEST_FILE="$HOME/test_force_purge_$(date +%s).tmp"
|
||||
if dd if=/dev/zero of="$TEST_FILE" bs=1g count=50 2>/dev/null; then
|
||||
echo " ✅ Created 50GB file"
|
||||
echo ""
|
||||
echo " Checking space after creation..."
|
||||
sleep 2
|
||||
FREE_DURING=$(df / | tail -1 | awk '{print $4}')
|
||||
FREE_DURING_GB=$(echo "scale=2; $FREE_DURING / 1024 / 1024" | bc)
|
||||
echo " Free space during: ${FREE_DURING_GB}GB"
|
||||
echo ""
|
||||
|
||||
echo " Deleting test file..."
|
||||
rm -f "$TEST_FILE"
|
||||
echo " ✅ Deleted"
|
||||
else
|
||||
echo " ⚠️ Could not create file (not enough space or permission issue)"
|
||||
echo " This means the purgeable space may not be available"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "⏳ Waiting for system to update..."
|
||||
sleep 10
|
||||
|
||||
# Check final results
|
||||
FREE_SPACE_AFTER=$(df / | tail -1 | awk '{print $4}')
|
||||
FREE_SPACE_GB_AFTER=$(echo "scale=2; $FREE_SPACE_AFTER / 1024 / 1024" | bc)
|
||||
FREED_GB=$(echo "scale=2; $FREE_SPACE_GB_AFTER - $FREE_SPACE_GB_BEFORE" | bc)
|
||||
|
||||
echo ""
|
||||
echo "=== Results ==="
|
||||
echo " Before: ${FREE_SPACE_GB_BEFORE}GB free"
|
||||
echo " After: ${FREE_SPACE_GB_AFTER}GB free"
|
||||
if (( $(echo "$FREED_GB > 100" | bc -l) )); then
|
||||
echo " ✅ Successfully freed: ${FREED_GB}GB!"
|
||||
echo " The purgeable space was released!"
|
||||
elif (( $(echo "$FREED_GB > 0" | bc -l) )); then
|
||||
echo " ✅ Freed: ${FREED_GB}GB"
|
||||
else
|
||||
echo " ⚠️ No space freed"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
echo "=== Understanding System Data (351GB) ==="
|
||||
echo ""
|
||||
echo "If System Data still shows 351GB but you have free space,"
|
||||
echo "this is NORMAL macOS behavior:"
|
||||
echo ""
|
||||
echo " - System Data includes PURGEABLE space"
|
||||
echo " - Purgeable space is AVAILABLE but shown as 'used'"
|
||||
echo " - macOS will release it automatically when needed"
|
||||
echo " - The space is actually available for use"
|
||||
echo ""
|
||||
echo "To verify space is available:"
|
||||
echo " 1. Try creating a large file (you just did)"
|
||||
echo " 2. Check Activity Monitor → Disk → Purgeable"
|
||||
echo " 3. The space will be released when you actually need it"
|
||||
echo ""
|
||||
echo "The 351GB in System Data is misleading - much of it"
|
||||
echo "is purgeable and available when needed."
|
||||
echo ""
|
||||
Reference in New Issue
Block a user