Files
nas-tools/free_disk_space.sh
T

97 lines
3.0 KiB
Bash
Executable File

#!/bin/bash
# Free Disk Space for Time Machine
# This script helps identify and free up space on your Mac so Time Machine can work
set -e
echo "=== Mac Disk Space Analysis ==="
echo ""
# Check current disk usage
echo "📊 Current Disk Status:"
df -h / | tail -1 | awk '{print " Total: " $2 " | Used: " $3 " (" $5 ") | Free: " $4}'
echo ""
# Check if disk is critically low
FREE_SPACE=$(df / | tail -1 | awk '{print $4}')
FREE_SPACE_GB=$(echo "scale=2; $FREE_SPACE / 1024 / 1024" | bc)
if (( $(echo "$FREE_SPACE_GB < 5" | bc -l) )); then
echo "⚠️ WARNING: Disk has less than 5GB free. Time Machine requires free space to work!"
echo ""
fi
echo "🔍 Analyzing Large Files and Folders:"
echo ""
# Check Downloads folder
if [ -d ~/Downloads ]; then
DOWNLOADS_SIZE=$(du -sh ~/Downloads 2>/dev/null | awk '{print $1}')
echo " 📁 Downloads: $DOWNLOADS_SIZE"
fi
# Check Library Caches
if [ -d ~/Library/Caches ]; then
CACHES_SIZE=$(du -sh ~/Library/Caches 2>/dev/null | awk '{print $1}')
echo " 🗑️ Library/Caches: $CACHES_SIZE (safe to clean)"
fi
# Check Trash
if [ -d ~/.Trash ]; then
TRASH_SIZE=$(du -sh ~/.Trash 2>/dev/null | awk '{print $1}')
echo " 🗑️ Trash: $TRASH_SIZE"
fi
# Check local Time Machine snapshots
echo ""
echo "📸 Local Time Machine Snapshots:"
SNAPSHOTS=$(tmutil listlocalsnapshots / 2>/dev/null | grep -v "Snapshots for disk" | grep -v "^$" | wc -l | tr -d ' ')
if [ "$SNAPSHOTS" -gt 0 ]; then
echo " Found $SNAPSHOTS local snapshot(s)"
tmutil listlocalsnapshots / 2>/dev/null | grep -v "Snapshots for disk" | grep -v "^$" | sed 's/^/ - /'
echo ""
echo " 💡 Tip: Local snapshots are automatically deleted when space is needed,"
echo " but you can delete them manually if needed."
else
echo " No local snapshots found"
fi
echo ""
echo "📋 Top 10 Largest Files/Directories in Home:"
du -h -d 1 ~ 2>/dev/null | sort -hr | head -10 | awk '{printf " %8s %s\n", $1, $2}'
echo ""
echo "=== Recommendations ==="
echo ""
echo "1. 🗑️ Empty Trash:"
echo " rm -rf ~/.Trash/*"
echo ""
echo "2. 🧹 Clean System Caches (safe):"
echo " rm -rf ~/Library/Caches/*"
echo ""
echo "3. 📁 Review Downloads folder (~/Downloads) - 19GB found"
echo " Move large files to NAS or delete if not needed"
echo ""
echo "4. 🗑️ Delete old local snapshots (if needed):"
echo " sudo tmutil deletelocalsnapshots <snapshot-date>"
echo ""
echo "5. 💾 Use Storage Management:"
echo " Apple Menu → About This Mac → Storage → Manage"
echo " This tool can help identify and remove large files, old backups, etc."
echo ""
echo "6. 📦 Check for large applications:"
echo " Review Applications folder for unused apps"
echo ""
echo "=== Quick Clean Commands ==="
echo ""
echo "To clean caches (safe, will regenerate):"
echo " rm -rf ~/Library/Caches/*"
echo ""
echo "To empty trash:"
echo " rm -rf ~/.Trash/*"
echo ""
echo "To see what's taking up space:"
echo " du -h -d 1 ~ | sort -hr | head -20"
echo ""