Initial commit: combine nas_tool, nas_webdav, sync-utils

This commit is contained in:
Gan, Jimmy
2026-02-18 22:59:43 +08:00
commit 526c6a5521
77 changed files with 7898 additions and 0 deletions
+106
View File
@@ -0,0 +1,106 @@
#!/bin/bash
# Quick Fix: Free up space for Time Machine
# This script performs safe cleanup operations to free disk space
set -e
echo "=== Time Machine Disk Space Fix ==="
echo ""
echo "This script will help free up space so Time Machine can work."
echo ""
# Check current free space
FREE_SPACE=$(df / | tail -1 | awk '{print $4}')
FREE_SPACE_GB=$(echo "scale=2; $FREE_SPACE / 1024 / 1024" | bc)
echo "Current free space: ${FREE_SPACE_GB}GB"
echo ""
# Ask for confirmation
read -p "Do you want to proceed with safe cleanup? (y/n) " -n 1 -r
echo ""
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "Cancelled."
exit 0
fi
echo ""
echo "🧹 Cleaning up..."
# 1. Empty Trash
if [ -d ~/.Trash ] && [ "$(ls -A ~/.Trash 2>/dev/null)" ]; then
TRASH_SIZE=$(du -sh ~/.Trash 2>/dev/null | awk '{print $1}')
echo " Emptying Trash ($TRASH_SIZE)..."
rm -rf ~/.Trash/* ~/.Trash/.* 2>/dev/null || true
echo " ✓ Trash emptied"
else
echo " ✓ Trash already empty"
fi
# 2. Clean Library Caches (safe - will regenerate)
if [ -d ~/Library/Caches ]; then
CACHES_SIZE=$(du -sh ~/Library/Caches 2>/dev/null | awk '{print $1}')
echo " Cleaning Library/Caches ($CACHES_SIZE)..."
# Keep some important caches
mkdir -p ~/Library/Caches/backup_temp
find ~/Library/Caches -mindepth 1 -maxdepth 1 ! -name "backup_temp" -exec mv {} ~/Library/Caches/backup_temp/ \; 2>/dev/null || true
rm -rf ~/Library/Caches/backup_temp/* 2>/dev/null || true
rmdir ~/Library/Caches/backup_temp 2>/dev/null || true
echo " ✓ Caches cleaned"
fi
# 3. Clean user cache
if [ -d ~/.cache ]; then
CACHE_SIZE=$(du -sh ~/.cache 2>/dev/null | awk '{print $1}')
echo " Cleaning ~/.cache ($CACHE_SIZE)..."
rm -rf ~/.cache/* 2>/dev/null || true
echo " ✓ User cache cleaned"
fi
# 4. Clean npm cache (if exists)
if command -v npm &> /dev/null; then
NPM_CACHE_SIZE=$(du -sh ~/.npm 2>/dev/null | awk '{print $1}' || echo "0")
if [ "$NPM_CACHE_SIZE" != "0" ] && [ -d ~/.npm ]; then
echo " Cleaning npm cache ($NPM_CACHE_SIZE)..."
npm cache clean --force 2>/dev/null || true
echo " ✓ npm cache cleaned"
fi
fi
echo ""
echo "📊 Checking new disk space..."
NEW_FREE_SPACE=$(df / | tail -1 | awk '{print $4}')
NEW_FREE_SPACE_GB=$(echo "scale=2; $NEW_FREE_SPACE / 1024 / 1024" | bc)
FREED_GB=$(echo "scale=2; $NEW_FREE_SPACE_GB - $FREE_SPACE_GB" | bc)
echo ""
echo "=== Results ==="
echo " Before: ${FREE_SPACE_GB}GB free"
echo " After: ${NEW_FREE_SPACE_GB}GB free"
if (( $(echo "$FREED_GB > 0" | bc -l) )); then
echo " Freed: ${FREED_GB}GB"
fi
echo ""
# Check if we have enough space now
if (( $(echo "$NEW_FREE_SPACE_GB < 5" | bc -l) )); then
echo "⚠️ Still low on space. Additional recommendations:"
echo ""
echo " 1. Review Downloads folder (19GB found):"
echo " cd ~/Downloads && ls -lhS | head -20"
echo ""
echo " 2. Check Documents folder (60GB found):"
echo " Move large files to NAS if possible"
echo ""
echo " 3. Review .ollama folder (17GB found):"
echo " Consider removing unused models"
echo ""
echo " 4. Use macOS Storage Management:"
echo " Apple Menu → About This Mac → Storage → Manage"
echo ""
else
echo "✅ Good! You should have enough space for Time Machine now."
echo " Try running Time Machine backup again."
fi
echo ""