#!/bin/bash # deploy_vps_batch4.sh - Deploy automático Batch 4 para VPS # # Author: Descomplicar® Crescimento Digital # Link: https://descomplicar.pt # Copyright: 2025 Descomplicar® set -e # Exit on error echo "==========================================" echo "CTF BATCH 4 - DEPLOY VPS" echo "Descomplicar® Crescimento Digital" echo "==========================================" echo "" # Configurações VPS_HOST="easy.descomplicar.pt" VPS_PORT="22" VPS_USER="root" VPS_PATH="/root/scraper-ctf" LOCAL_DIR="/media/ealmeida/Dados/Dev/Scripts/scraper" # Cores GREEN='\033[0;32m' RED='\033[0;31m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Funções log_info() { echo -e "${GREEN}[INFO]${NC} $1" } log_error() { echo -e "${RED}[ERROR]${NC} $1" } log_warn() { echo -e "${YELLOW}[WARN]${NC} $1" } # 1. Validar ficheiros locais log_info "Validando ficheiros locais..." REQUIRED_FILES=( "batch_scraper_v2_batch4.py" "ctf_config_batch4.json" "scraper.py" "requirements.txt" ) for file in "${REQUIRED_FILES[@]}"; do if [ ! -f "$LOCAL_DIR/$file" ]; then log_error "Ficheiro não encontrado: $file" exit 1 fi log_info "✓ $file" done # 2. Testar conectividade VPS log_info "Testando conectividade VPS..." if ssh -p $VPS_PORT -o ConnectTimeout=10 $VPS_USER@$VPS_HOST "echo 'OK'" > /dev/null 2>&1; then log_info "✓ VPS acessível" else log_error "VPS não acessível. Verificar SSH/firewall." exit 1 fi # 3. Criar diretório remoto log_info "Criando diretório no VPS..." ssh -p $VPS_PORT $VPS_USER@$VPS_HOST "mkdir -p $VPS_PATH" # 4. Transferir ficheiros log_info "Transferindo ficheiros..." scp -P $VPS_PORT \ "$LOCAL_DIR/batch_scraper_v2_batch4.py" \ "$LOCAL_DIR/ctf_config_batch4.json" \ "$LOCAL_DIR/scraper.py" \ "$LOCAL_DIR/requirements.txt" \ $VPS_USER@$VPS_HOST:$VPS_PATH/ log_info "✓ Ficheiros transferidos" # 5. Setup ambiente Python no VPS log_info "Configurando ambiente Python no VPS..." ssh -p $VPS_PORT $VPS_USER@$VPS_HOST << 'ENDSSH' cd /root/scraper-ctf # Verificar Python 3 if ! command -v python3 &> /dev/null; then echo "Python3 não encontrado. Instalar:" echo " apt update && apt install -y python3 python3-pip python3-venv" exit 1 fi # Criar venv if [ ! -d "venv" ]; then python3 -m venv venv echo "✓ Virtual environment criado" fi # Ativar venv e instalar dependências source venv/bin/activate pip install --upgrade pip pip install -r requirements.txt # Instalar Playwright playwright install chromium playwright install-deps chromium echo "✓ Dependências instaladas" ENDSSH log_info "✓ Ambiente Python configurado" # 6. Criar script de execução remoto log_info "Criando script de execução..." ssh -p $VPS_PORT $VPS_USER@$VPS_HOST << 'ENDSSH' cat > /root/scraper-ctf/run_batch4.sh << 'EOF' #!/bin/bash # Script execução Batch 4 # Author: Descomplicar® Crescimento Digital cd /root/scraper-ctf source venv/bin/activate echo "==========================================" echo "CTF BATCH 4 SCRAPER - INICIANDO" echo "Hora início: $(date)" echo "==========================================" echo "" # Executar scraper python3 batch_scraper_v2_batch4.py --config ctf_config_batch4.json echo "" echo "==========================================" echo "SCRAPING CONCLUÍDO" echo "Hora fim: $(date)" echo "==========================================" # Compactar resultados tar -czf results_batch4_$(date +%Y%m%d_%H%M%S).tar.gz \ /root/scraper-ctf/output_md_batch4/ \ /root/scraper-ctf/logs/ echo "✓ Resultados compactados" EOF chmod +x /root/scraper-ctf/run_batch4.sh echo "✓ Script execução criado" ENDSSH log_info "✓ Script execução criado" # 7. Verificação final log_info "Verificação final..." ssh -p $VPS_PORT $VPS_USER@$VPS_HOST << 'ENDSSH' cd /root/scraper-ctf echo "Ficheiros no VPS:" ls -lh echo "" echo "Python version:" source venv/bin/activate python3 --version echo "" echo "Packages instalados:" pip list | grep -E "(playwright|beautifulsoup|requests)" ENDSSH # 8. Instruções finais echo "" echo "==========================================" log_info "DEPLOY CONCLUÍDO!" echo "==========================================" echo "" echo "PRÓXIMOS PASSOS:" echo "" echo "1. Ligar ao VPS:" echo " ssh -p $VPS_PORT $VPS_USER@$VPS_HOST" echo "" echo "2. Ir para diretório:" echo " cd $VPS_PATH" echo "" echo "3. EXECUTAR BATCH 4:" echo " nohup ./run_batch4.sh > execution.log 2>&1 &" echo "" echo "4. Monitorizar execução:" echo " tail -f execution.log" echo "" echo "5. Ver progresso logs:" echo " tail -f /media/ealmeida/Dados/GDrive/Cloud/Clientes_360/CTF_Carstuff/KB/Scrapper/sites/logs/batch4_execution_*.log" echo "" echo "6. DESCARREGAR RESULTADOS (após concluir):" echo " scp -P $VPS_PORT $VPS_USER@$VPS_HOST:$VPS_PATH/results_batch4_*.tar.gz ." echo "" echo "ESTIMATIVA: 48-60 horas execução" echo "=========================================="