/
Dmitry-F
/
cbt_tool
Обзор
Документация
Войти
/
Dmitry-F
/
cbt_tool
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
python-ml-service
bin/cleanup
108 строк
3 KB
Dmitriy-Filatov
🎯 ФАЗА 0: ИНФРАСТРУКТУРА ГОТОВА
11 мар 2026, 22:12
11 мар 2026, 22:12
46453bc
Код
Авторство
О чём код?
#!/bin/bash echo "🧹 БЕЗОПАСНАЯ ЧИСТКА для CBT Therapist Tool" echo "============================================" DATE=$(date "+%Y-%m-%d %H:%M:%S") LOG="$HOME/cleanup_rails.log" STATS_FILE="$HOME/.cleanup_stats" # Проверка, что Rails не запущен if pgrep -f "rails s" > /dev/null || pgrep -f "bin/dev" > /dev/null; then echo "❌ Останови Rails сервер перед чисткой! (./bin/dev или rails s)" exit 1 fi # Инициализация статистики if [ ! -f "$STATS_FILE" ]; then echo "TOTAL_CLEANED_MB=0" > "$STATS_FILE" echo "FIRST_RUN=$(date "+%Y-%m-%d")" >> "$STATS_FILE" echo "RUNS=0" >> "$STATS_FILE" fi source "$STATS_FILE" CLEANED_MB=0 # Функция подсчёта размера count_size() { if [ -e "$1" ]; then SIZE=$(du -sk "$1" 2>/dev/null | cut -f1) if [ ! -z "$SIZE" ] && [ "$SIZE" -gt 0 ]; then CLEANED_MB=$((CLEANED_MB + SIZE / 1024)) fi fi } log() { echo "[$DATE] $1" >> "$LOG" echo "$1" } # 1. PostgreSQL (универсальный путь) if command -v psql &> /dev/null; then PG_DATA=$(brew --prefix postgresql 2>/dev/null)/var/postgres if [ -d "$PG_DATA" ]; then count_size "$PG_DATA" echo "VACUUM;" | psql postgres 2>/dev/null && log "✅ PostgreSQL оптимизирован (VACUUM)" fi fi # 2. Rails TMP PROJECT_DIR="$HOME/cbt_therapist_tool" if [ -d "$PROJECT_DIR/tmp" ]; then count_size "$PROJECT_DIR/tmp" rm -rf "$PROJECT_DIR/tmp/cache/"* 2>/dev/null rm -rf "$PROJECT_DIR/tmp/sockets/"* 2>/dev/null rm -rf "$PROJECT_DIR/tmp/pids/"* 2>/dev/null # ⚠️ Закомментировано для безопасности: удаляет загруженные файлы # rm -rf "$PROJECT_DIR/tmp/storage/"* 2>/dev/null find "$PROJECT_DIR/tmp" -type f -name "*.log" -delete 2>/dev/null log "✅ Rails tmp очищен (кэш, сокеты, pids, логи)" fi # 3. Gem'ы (закомментировано — не трогаем) # count_size "$HOME/.gem" # gem cleanup 2>/dev/null && log "✅ Gem'ы почищены" # 4. Node.js (безопасно — чистит только если есть) count_size "$HOME/.npm" npm cache clean --force 2>/dev/null && log "✅ NPM кэш очищен (если был)" count_size "$HOME/.cache/yarn" yarn cache clean 2>/dev/null && log "✅ Yarn кэш очищен (если был)" # 5. Логи Rails if [ -d "$PROJECT_DIR/log" ]; then count_size "$PROJECT_DIR/log" rm -rf "$PROJECT_DIR/log/"*.log 2>/dev/null touch "$PROJECT_DIR/log/development.log" log "✅ Логи Rails очищены" fi # 6. Система (безопасно) count_size "$HOME/.Trash" rm -rf "$HOME/.Trash/"* 2>/dev/null log "✅ Корзина очищена" if command -v brew &> /dev/null; then brew cleanup 2>/dev/null log "✅ Системный мусор очищен (brew)" fi # Обновление статистики RUNS=$((RUNS + 1)) TOTAL_CLEANED_MB=$((TOTAL_CLEANED_MB + CLEANED_MB)) cat > "$STATS_FILE" << EOS TOTAL_CLEANED_MB=$TOTAL_CLEANED_MB FIRST_RUN=$FIRST_RUN RUNS=$RUNS LAST_CLEANED_MB=$CLEANED_MB LAST_RUN="$DATE" EOS # ВЫВОД echo "====================================" echo "🧹 УДАЛЕНО МУСОРА: $CLEANED_MB MB" echo "====================================" echo "📊 НАКОПЛЕНО ВСЕГО: $TOTAL_CLEANED_MB MB (с $FIRST_RUN)" echo "🔄 ВСЕГО ЧИСТОК: $RUNS" echo "📁 Лог: $LOG"