#!/bin/bash # pull-backup.sh - Script para baixar backups do servidor para seu PC # Uso: ./pull-backup.sh # Agendar no crontab do SEU PC: 0 3 * * * /caminho/para/pull-backup.sh set -e # ============ CONFIGURAÇÃO ============ # Preencha com seus dados SERVER_USER="usuario" # Usuário SSH no servidor SERVER_HOST="seu-servidor.com" # IP ou domínio do servidor SERVER_BACKUP_DIR="/var/backups/minio" # Mesmo diretório do backup-minio.sh LOCAL_BACKUP_DIR="$HOME/backups/minio" # Onde salvar no seu PC KEEP_LOCAL_DAYS=30 # Quanto tempo manter no seu PC # ============ CÓDIGO ============ mkdir -p "$LOCAL_BACKUP_DIR" echo "==========================================" echo "Baixando backups do MinIO" echo "De: $SERVER_USER@$SERVER_HOST:$SERVER_BACKUP_DIR" echo "Para: $LOCAL_BACKUP_DIR" echo "Iniciado em: $(date)" echo "==========================================" # Baixar backups (somente os que ainda não temos) echo "Sincronizando arquivos..." rsync -avz --progress \ -e "ssh -o StrictHostKeyChecking=no" \ "$SERVER_USER@$SERVER_HOST:$SERVER_BACKUP_DIR/" \ "$LOCAL_BACKUP_DIR/" # ============ LIMPAR BACKUPS ANTIGOS (LOCAL) ============ echo "" echo "Limpando backups locais com mais de $KEEP_LOCAL_DAYS dias..." find "$LOCAL_BACKUP_DIR" -name "minio-backup-*.tar.gz" -mtime +$KEEP_LOCAL_DAYS -delete # ============ RESUMO ============ echo "" echo "==========================================" echo "Backups locais:" ls -lh "$LOCAL_BACKUP_DIR"/minio-backup-*.tar.gz 2>/dev/null | tail -5 echo "" echo "Espaço usado:" du -sh "$LOCAL_BACKUP_DIR" echo "" echo "Concluído em: $(date)" echo "==========================================" # ============ ALERTAS ============ BACKUP_COUNT=$(ls -1 "$LOCAL_BACKUP_DIR"/minio-backup-*.tar.gz 2>/dev/null | wc -l) if [ "$BACKUP_COUNT" -eq 0 ]; then echo "⚠️ ATENÇÃO: Nenhum backup encontrado localmente!" fi