166 lines
		
	
	
		
			No EOL
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			166 lines
		
	
	
		
			No EOL
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| # Load environment variables
 | |
| if [ ! -f ../.env ]; then
 | |
|     echo "Error: .env file not found!"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| source ../.env
 | |
| 
 | |
| # Colors for output
 | |
| GREEN='\033[0;32m'
 | |
| RED='\033[0;31m'
 | |
| YELLOW='\033[1;33m'
 | |
| BLUE='\033[0;34m'
 | |
| NC='\033[0m'
 | |
| 
 | |
| # Function to check if a command was successful
 | |
| check_status() {
 | |
|     if [ $? -eq 0 ]; then
 | |
|         echo -e "${GREEN}✓ $1${NC}"
 | |
|         return 0
 | |
|     else
 | |
|         echo -e "${RED}✗ $1${NC}"
 | |
|         return 1
 | |
|     fi
 | |
| }
 | |
| 
 | |
| # Function to show usage
 | |
| show_usage() {
 | |
|     echo "Usage: $0 [options]"
 | |
|     echo ""
 | |
|     echo "Options:"
 | |
|     echo "  -a, --all         Clean everything (logs, backups, temp files)"
 | |
|     echo "  -l, --logs        Clean only log files"
 | |
|     echo "  -b, --backups     Clean only old backups"
 | |
|     echo "  -t, --temp        Clean only temporary files"
 | |
|     echo "  -d, --days N      Clean files older than N days (default: 30)"
 | |
|     echo "  -f, --force       Skip all confirmations"
 | |
|     echo "  -h, --help        Show this help message"
 | |
|     echo ""
 | |
|     echo "Examples:"
 | |
|     echo "  $0 -a             # Clean everything with confirmation"
 | |
|     echo "  $0 -l -d 7        # Clean logs older than 7 days"
 | |
|     echo "  $0 -b -f          # Force clean all old backups"
 | |
|     echo "  $0 -t             # Clean temporary files"
 | |
| }
 | |
| 
 | |
| # Default values
 | |
| CLEAN_LOGS=false
 | |
| CLEAN_BACKUPS=false
 | |
| CLEAN_TEMP=false
 | |
| DAYS=30
 | |
| FORCE=false
 | |
| 
 | |
| # Parse command line options
 | |
| while [[ $# -gt 0 ]]; do
 | |
|     case "$1" in
 | |
|         -a|--all)
 | |
|             CLEAN_LOGS=true
 | |
|             CLEAN_BACKUPS=true
 | |
|             CLEAN_TEMP=true
 | |
|             shift
 | |
|             ;;
 | |
|         -l|--logs)
 | |
|             CLEAN_LOGS=true
 | |
|             shift
 | |
|             ;;
 | |
|         -b|--backups)
 | |
|             CLEAN_BACKUPS=true
 | |
|             shift
 | |
|             ;;
 | |
|         -t|--temp)
 | |
|             CLEAN_TEMP=true
 | |
|             shift
 | |
|             ;;
 | |
|         -d|--days)
 | |
|             DAYS="$2"
 | |
|             shift 2
 | |
|             ;;
 | |
|         -f|--force)
 | |
|             FORCE=true
 | |
|             shift
 | |
|             ;;
 | |
|         -h|--help)
 | |
|             show_usage
 | |
|             exit 0
 | |
|             ;;
 | |
|         *)
 | |
|             echo "Error: Unknown option '$1'"
 | |
|             show_usage
 | |
|             exit 1
 | |
|             ;;
 | |
|     esac
 | |
| done
 | |
| 
 | |
| # If no options specified, show usage
 | |
| if [ "$CLEAN_LOGS" = false ] && [ "$CLEAN_BACKUPS" = false ] && [ "$CLEAN_TEMP" = false ]; then
 | |
|     show_usage
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| # Confirm cleanup if not forced
 | |
| if [ "$FORCE" = false ]; then
 | |
|     echo -e "${YELLOW}Warning: This will clean up your development environment.${NC}"
 | |
|     echo "The following will be cleaned:"
 | |
|     [ "$CLEAN_LOGS" = true ] && echo "- Log files older than $DAYS days"
 | |
|     [ "$CLEAN_BACKUPS" = true ] && echo "- Backup files older than $DAYS days"
 | |
|     [ "$CLEAN_TEMP" = true ] && echo "- Temporary files"
 | |
|     read -p "Continue? [y/N] " -n 1 -r
 | |
|     echo
 | |
|     if [[ ! $REPLY =~ ^[Yy]$ ]]; then
 | |
|         echo "Operation cancelled."
 | |
|         exit 1
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| echo -e "${BLUE}Starting environment cleanup...${NC}"
 | |
| 
 | |
| # Clean log files
 | |
| if [ "$CLEAN_LOGS" = true ]; then
 | |
|     echo "Cleaning log files..."
 | |
|     
 | |
|     # Clean WordPress logs
 | |
|     docker-compose exec wordpress find /var/www/html/wp-content -name "*.log" -type f -mtime +$DAYS -delete
 | |
|     check_status "WordPress logs cleanup"
 | |
|     
 | |
|     # Clean MySQL logs
 | |
|     docker-compose exec db find /var/log/mysql -name "*.log.*" -type f -mtime +$DAYS -delete
 | |
|     check_status "MySQL logs cleanup"
 | |
| fi
 | |
| 
 | |
| # Clean backup files
 | |
| if [ "$CLEAN_BACKUPS" = true ]; then
 | |
|     echo "Cleaning old backups..."
 | |
|     
 | |
|     # Clean database backups
 | |
|     find ../backups -name "*.sql" -type f -mtime +$DAYS -delete
 | |
|     check_status "Database backups cleanup"
 | |
|     
 | |
|     # Clean WordPress backups
 | |
|     find ../backups -name "*.tar.gz" -type f -mtime +$DAYS -delete
 | |
|     check_status "WordPress backups cleanup"
 | |
| fi
 | |
| 
 | |
| # Clean temporary files
 | |
| if [ "$CLEAN_TEMP" = true ]; then
 | |
|     echo "Cleaning temporary files..."
 | |
|     
 | |
|     # Clean WordPress temp files
 | |
|     docker-compose exec wordpress find /var/www/html/wp-content/uploads/tmp -type f -delete
 | |
|     check_status "WordPress temp files cleanup"
 | |
|     
 | |
|     # Clean local temp files
 | |
|     find ../tmp -type f -delete 2>/dev/null || true
 | |
|     check_status "Local temp files cleanup"
 | |
| fi
 | |
| 
 | |
| echo -e "${GREEN}Environment cleanup completed!${NC}"
 | |
| 
 | |
| # Show disk space saved
 | |
| echo -e "\n${BLUE}Disk space summary:${NC}"
 | |
| echo "WordPress volume:"
 | |
| docker-compose exec wordpress df -h /var/www/html
 | |
| echo -e "\nMySQL volume:"
 | |
| docker-compose exec db df -h /var/lib/mysql  |