Files
2026-08-31 14:10:20 -03:00

55 lines
1.9 KiB
Bash
Executable File

#!/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