Sign In

우분투 용량 정리 & 캐시 정리

1.
아래 내용을 clean.sh로 저장 후
2.
chmod
chmod +x clean.sh
#!/bin/bash

set -e

echo "🧹 시스템 캐시 정리를 시작합니다..."

# Docker 캐시 정리
echo "🐳 Docker 캐시 정리 중..."
if command -v docker &> /dev/null; then
    echo "  - 사용하지 않는 컨테이너 제거..."
    docker container prune -f
    
    echo "  - 사용하지 않는 이미지 제거..."
    docker image prune -a -f
    
    echo "  - 사용하지 않는 볼륨 제거..."
    docker volume prune -f
    
    echo "  - 사용하지 않는 네트워크 제거..."
    docker network prune -f
    
    echo "  - 빌드 캐시 제거..."
    docker builder prune -a -f
    
    echo "  - 전체 시스템 정리..."
    docker system prune -a -f --volumes
else
    echo "  Docker가 설치되어 있지 않습니다."
fi

# Ubuntu 패키지 캐시 정리
echo "📦 Ubuntu 패키지 캐시 정리 중..."
sudo apt clean
sudo apt autoremove -y
sudo apt autoclean

# APT 캐시 정리
echo "  - APT 캐시 정리..."
sudo rm -rf /var/cache/apt/archives/*.deb
sudo rm -rf /var/cache/apt/archives/partial/*

# 로그 파일 정리
echo "📋 시스템 로그 정리 중..."
sudo journalctl --vacuum-time=7d
sudo find /var/log -name "*.log" -type f -mtime +30 -delete 2>/dev/null || true
sudo find /var/log -name "*.gz" -type f -mtime +30 -delete 2>/dev/null || true

# Snap 캐시 정리
echo "📱 Snap 캐시 정리 중..."
if command -v snap &> /dev/null; then
    sudo snap refresh
    LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' | while read snapname revision; do
        sudo snap remove "$snapname" --revision="$revision" 2>/dev/null || true
    done
else
    echo "  Snap이 설치되어 있지 않습니다."
fi

# .claude 캐시 정리
echo "🤖 Claude 캐시 정리 중..."
if [ -d "$HOME/.claude" ]; then
    echo "  - Claude 캐시 디렉토리 크기: $(du -sh $HOME/.claude 2>/dev/null | cut -f1)"
    find "$HOME/.claude" -name "cache" -type d -exec rm -rf {} + 2>/dev/null || true
    find "$HOME/.claude" -name "*.cache" -type f -delete 2>/dev/null || true
    find "$HOME/.claude" -name "*.tmp" -type f -delete 2>/dev/null || true
    find "$HOME/.claude" -name "*.log" -type f -mtime +7 -delete 2>/dev/null || true
else
    echo "  .claude 디렉토리가 없습니다."
fi

# .vscode 캐시 정리
echo "💻 VSCode 캐시 정리 중..."
if [ -d "$HOME/.vscode" ]; then
    echo "  - VSCode 캐시 디렉토리 크기: $(du -sh $HOME/.vscode 2>/dev/null | cut -f1)"
    find "$HOME/.vscode" -name "CachedExtensions" -type d -exec rm -rf {} + 2>/dev/null || true
    find "$HOME/.vscode" -name "logs" -type d -exec rm -rf {} + 2>/dev/null || true
    find "$HOME/.vscode" -name "*.log" -type f -delete 2>/dev/null || true
fi

if [ -d "$HOME/.vscode-server" ]; then
    echo "  - VSCode Server 캐시 디렉토리 크기: $(du -sh $HOME/.vscode-server 2>/dev/null | cut -f1)"
    find "$HOME/.vscode-server" -name "logs" -type d -exec rm -rf {} + 2>/dev/null || true
    find "$HOME/.vscode-server" -name "*.log" -type f -mtime +7 -delete 2>/dev/null || true
fi

# npm 캐시 정리 (있는 경우)
echo "📦 npm 캐시 정리 중..."
if command -v npm &> /dev/null; then
    npm cache clean --force 2>/dev/null || true
else
    echo "  npm이 설치되어 있지 않습니다."
fi

# pip 캐시 정리 (있는 경우)
echo "🐍 pip 캐시 정리 중..."
if command -v pip &> /dev/null; then
    pip cache purge 2>/dev/null || true
elif command -v pip3 &> /dev/null; then
    pip3 cache purge 2>/dev/null || true
else
    echo "  pip이 설치되어 있지 않습니다."
fi

# 임시 파일 정리
echo "🗑️  임시 파일 정리 중..."
sudo rm -rf /tmp/* 2>/dev/null || true
sudo rm -rf /var/tmp/* 2>/dev/null || true
rm -rf ~/.cache/* 2>/dev/null || true

# 썸네일 캐시 정리
echo "🖼️  썸네일 캐시 정리 중..."
rm -rf ~/.thumbnails/* 2>/dev/null || true
rm -rf ~/.cache/thumbnails/* 2>/dev/null || true

# 브라우저 캐시 정리 (Chrome, Firefox)
echo "🌐 브라우저 캐시 정리 중..."
# Chrome
find "$HOME/.cache/google-chrome" -type f -delete 2>/dev/null || true
# Firefox
find "$HOME/.cache/mozilla" -type f -delete 2>/dev/null || true

echo "✅ 캐시 정리가 완료되었습니다!"
echo ""
echo "📊 디스크 사용량:"
df -h / | tail -1
echo ""
echo "🆓 사용 가능한 메모리:"
free -h | grep '^Mem:' | awk '{print $7}'