Files
local_machine/docs/disk_cleanup/cleanup-disk-now.sh
ahauimix 1938b7c743 Expand local_machine docs and automation for connectivity, games, and ops.
Add proxy/VPN/telegram launchd and emergency runbooks; reorganize apps docs;
document JA3 CrossOver runbook and Wine troubleshooting; add GOG/HoMM game
scripts, disk cleanup guides, and gitea push-via-proxy helper. Ignore temp/.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 08:12:19 +03:00

198 lines
8.9 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Безопасная очистка диска — по списку из docs/disk_cleanup/DISK_CLEANUP.md.
# Запрещено удалять: docs/disk_cleanup/DO_NOT_DELETE.md
set -e
echo "🧹 Безопасная очистка диска (см. DO_NOT_DELETE.md)"
echo "=========================================================="
echo ""
cleanup_dir() {
local dir="$1"
local name="$2"
if [ -d "$dir" ] || [ -f "$dir" ]; then
size=$(du -sh "$dir" 2>/dev/null | cut -f1)
echo "🗑️ Удаление $name ($size)..."
rm -rf "$dir" 2>/dev/null && echo "$name очищен" || echo " ⚠️ Не удалось удалить $name"
else
echo " $name не найден, пропускаем"
fi
}
echo "📊 Текущее состояние диска:"
df -h / | tail -1
echo ""
# 1. Кэши разработки: Colima, npm, node-gyp, TypeScript, pip, .yarn
echo "=== 1. Кэши разработки ==="
cleanup_dir "$HOME/.colima" "Colima кэш"
cleanup_dir "$HOME/Library/Caches/colima" "Colima кэш (Library)"
cleanup_dir "$HOME/.npm" "npm кэш"
cleanup_dir "$HOME/Library/Caches/node-gyp" "node-gyp кэш"
cleanup_dir "$HOME/Library/Caches/typescript" "TypeScript кэш"
cleanup_dir "$HOME/Library/Caches/pip" "pip кэш"
cleanup_dir "$HOME/.yarn" ".yarn кэш"
cleanup_dir "$HOME/Library/Caches/ms-playwright" "Playwright кэш (браузеры для тестов)"
echo ""
# 2. Windsurf полностью (кэш + данные; приложение — удалить вручную из Программы)
echo "=== 2. Windsurf полностью ==="
cleanup_dir "$HOME/.codeium/windsurf" "Codeium/Windsurf кэш"
cleanup_dir "$HOME/.windsurf" "Windsurf данные"
cleanup_dir "$HOME/Library/Application Support/Windsurf" "Windsurf Application Support"
# Если .codeium пуст — можно удалить целиком
[ -d "$HOME/.codeium" ] && [ -z "$(ls -A "$HOME/.codeium" 2>/dev/null)" ] && rm -rf "$HOME/.codeium" && echo " ✅ .codeium (пустая) удалена"
echo ""
# 3. Кэши браузеров — только Google/Firefox (Brave в DO_NOT_DELETE)
echo "=== 3. Кэши браузеров (не Brave) ==="
cleanup_dir "$HOME/Library/Caches/Google" "Google кэш"
cleanup_dir "$HOME/Library/Caches/Firefox" "Firefox кэш"
echo ""
# 3b. Уровень 1 — лёгкие кэши и временные артефакты (~0.5 GB)
echo "=== 3b. Уровень 1 (кэши приложений, Apple, hunabapp temp) ==="
cleanup_dir "$HOME/Library/Caches/responsivelyapp-updater" "responsivelyapp-updater кэш"
cleanup_dir "$HOME/Library/Application Support/ResponsivelyApp" "ResponsivelyApp кэш"
cleanup_dir "$HOME/Library/Caches/GeoServices" "GeoServices кэш"
cleanup_dir "$HOME/Library/Caches/com.apple.helpd" "com.apple.helpd кэш"
cleanup_dir "$HOME/Library/Caches/com.apple.CloudTelemetry" "com.apple.CloudTelemetry кэш"
cleanup_dir "$HOME/Library/Caches/com.apple.ctcategories.service" "com.apple.ctcategories.service кэш"
HUNAB_TEMP="$HOME/code/hunabapp-dev/temp"
if [ -d "$HUNAB_TEMP" ]; then
find "$HUNAB_TEMP" -maxdepth 1 -type f \( -name 'hunab-backend-bundle-*.tar.gz' -o -name 'hunab-backend-logs-*.tar.gz' \) -print0 2>/dev/null | while IFS= read -r -d '' f; do
size=$(du -sh "$f" 2>/dev/null | cut -f1)
echo "🗑️ Удаление hunabapp temp: $(basename "$f") ($size)..."
rm -f "$f" && echo " ✅ удалён" || echo " ⚠️ не удалось"
done
fi
echo " Build/dist в ~/code (кроме frontend/android)..."
find "$HOME/code" -type d \( -name "build" -o -name "dist" -o -name ".next" -o -name "out" \) \
-not -path "*/node_modules/*" \
-not -path "*/venv/*" \
-not -path "*/.venv/*" \
-not -path "*/site-packages/*" \
-not -path "*/env/*" \
-not -path "*/hunabapp-dev/frontend/android/*" \
-exec rm -rf {} + 2>/dev/null || true
echo " ✅ Build-артефакты уровня 1 очищены"
echo ""
# 4. Приложения — Notion, zoom, LibreOffice, Movavi, Ledger (Telegram в DO_NOT_DELETE)
echo "=== 4. Кэши приложений ==="
cleanup_dir "$HOME/Library/Application Support/Notion" "Notion"
cleanup_dir "$HOME/Library/Application Support/zoom.us" "zoom.us"
cleanup_dir "$HOME/Library/Application Support/LibreOffice" "LibreOffice"
cleanup_dir "$HOME/Library/Application Support/Movavi" "Movavi"
cleanup_dir "$HOME/Library/Application Support/Ledger Live" "Ledger Live"
echo ""
# 5. Cursor — только разрешённые кэши и state backup (~10 GB)
echo "=== 5. Cursor кэши (только разрешённые) ==="
STATE_BACKUP="$HOME/Library/Application Support/Cursor/User/globalStorage/state.vscdb.backup"
if [ -f "$STATE_BACKUP" ]; then
size=$(du -sh "$STATE_BACKUP" 2>/dev/null | cut -f1)
echo " state.vscdb.backup ($size) — закрыть Cursor перед удалением!"
read -p " Удалить state.vscdb.backup? (y/n): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
rm -f "$STATE_BACKUP" && echo " ✅ state.vscdb.backup удалён" || echo " ⚠️ Закрой Cursor и повтори"
else
echo " ⏭️ Пропущено"
fi
fi
cleanup_dir "$HOME/Library/Caches/com.todesktop.230313mzl4w4u92.ShipIt" "Cursor ShipIt"
cleanup_dir "$HOME/Library/Application Support/Cursor/WebStorage" "Cursor WebStorage"
cleanup_dir "$HOME/Library/Application Support/Cursor/Partitions" "Cursor Partitions"
cleanup_dir "$HOME/.cursor/projects" "Cursor projects"
echo ""
# 6. Homebrew, .cache, пустые логи
echo "=== 6. Homebrew, .cache, пустые логи ==="
cleanup_dir "$HOME/Library/Caches/anytype-updater" "anytype-updater кэш"
cleanup_dir "$HOME/Library/Caches/Homebrew" "Homebrew кэш"
cleanup_dir "$HOME/.cache" ".cache"
find "$HOME/Library/Logs" -type f -size 0 -delete 2>/dev/null && echo " ✅ Пустые логи удалены" || true
echo ""
# 7. ScreenRecordings (по желанию)
echo "=== 7. Записи экрана ==="
if [ -d "$HOME/Library/ScreenRecordings" ]; then
count=$(find "$HOME/Library/ScreenRecordings" -type f 2>/dev/null | wc -l | tr -d ' ')
if [ "$count" -gt 0 ]; then
echo " Найдено файлов: $count"
read -p " Удалить все записи экрана? (y/n): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
cleanup_dir "$HOME/Library/ScreenRecordings" "Записи экрана"
else
echo " ⏭️ Пропущено"
fi
else
echo " Папка пуста"
fi
fi
echo ""
# 8. Build артефакты (исключая hunabapp-dev/frontend/android — в DO_NOT_DELETE)
echo "=== 8. Build артефакты в ~/code (кроме android) ==="
read -p " Удалить build/dist/.next/out? (y/n): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
find "$HOME/code" -type d \( -name "build" -o -name "dist" -o -name ".next" -o -name "out" \) \
-not -path "*/node_modules/*" \
-not -path "*/venv/*" \
-not -path "*/.venv/*" \
-not -path "*/site-packages/*" \
-not -path "*/env/*" \
-not -path "*/hunabapp-dev/frontend/android/*" \
-exec rm -rf {} + 2>/dev/null || true
echo " ✅ Готово"
else
echo " ⏭️ Пропущено"
fi
echo ""
# 9. node_modules (опционально; НЕ frontend — в DO_NOT_DELETE)
echo "=== 9. node_modules (кроме hunabapp-dev/frontend) ==="
read -p " Удалить node_modules в проектах? (y/n): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
find "$HOME/code" -type d -name "node_modules" \
-not -path "*/venv/*" \
-not -path "*/.venv/*" \
-not -path "*/hunabapp-dev/frontend/node_modules" \
-exec rm -rf {} + 2>/dev/null || true
echo " ✅ Готово. В нужных проектах: pnpm install"
else
echo " ⏭️ Пропущено"
fi
echo ""
# 10. UTM виртуальная машина — опционально
echo "=== 10. UTM виртуальная машина ==="
if [ -d "$HOME/code/Parrot-home-mate-6.4_arm64.utm" ]; then
read -p " Удалить UTM виртуальную машину? (y/n): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
cleanup_dir "$HOME/code/Parrot-home-mate-6.4_arm64.utm" "UTM виртуальная машина"
else
echo " ⏭️ Пропущено"
fi
else
echo " Не найдена"
fi
echo ""
echo "=========================================================="
echo "📊 Состояние диска после очистки:"
df -h / | tail -1
echo ""
echo "✅ Очистка завершена. Перезапустите приложения при необходимости."
echo " Разрешено: docs/disk_cleanup/DISK_CLEANUP.md"
echo " Запрещено: docs/disk_cleanup/DO_NOT_DELETE.md"
echo ""