Initial commit
This commit is contained in:
Executable
+61
@@ -0,0 +1,61 @@
|
||||
#!/bin/bash
|
||||
# backup-minio.sh - Script de backup do MinIO no servidor
|
||||
# Uso: ./backup-minio.sh
|
||||
# Agendar no crontab: 0 2 * * * /caminho/para/backup-minio.sh
|
||||
|
||||
set -e
|
||||
|
||||
# ============ CONFIGURAÇÃO ============
|
||||
BACKUP_DIR="/var/backups/minio" # Onde salvar os backups no servidor
|
||||
RETENTION_DAYS=7 # Quantos dias manter
|
||||
VOLUME_NAME="course-plat_minio_data" # Nome do volume Docker
|
||||
COMPRESSION="gzip" # gzip ou none
|
||||
|
||||
# Criar diretório de backup se não existir
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
# Data atual para o nome do arquivo
|
||||
DATE=$(date +%Y%m%d-%H%M%S)
|
||||
BACKUP_FILE="$BACKUP_DIR/minio-backup-$DATE.tar.gz"
|
||||
|
||||
echo "=========================================="
|
||||
echo "Backup MinIO iniciado em: $(date)"
|
||||
echo "=========================================="
|
||||
|
||||
# ============ FAZER BACKUP ============
|
||||
echo "Criando backup do volume $VOLUME_NAME..."
|
||||
|
||||
if [ "$COMPRESSION" = "gzip" ]; then
|
||||
docker run --rm \
|
||||
-v "$VOLUME_NAME:/data:ro" \
|
||||
-v "$BACKUP_DIR:/backup" \
|
||||
alpine tar czf "/backup/$(basename "$BACKUP_FILE")" -C /data .
|
||||
else
|
||||
docker run --rm \
|
||||
-v "$VOLUME_NAME:/data:ro" \
|
||||
-v "$BACKUP_DIR:/backup" \
|
||||
alpine tar cf "/backup/$(basename "$BACKUP_FILE")" -C /data .
|
||||
fi
|
||||
|
||||
# ============ VERIFICAR ============
|
||||
if [ -f "$BACKUP_FILE" ]; then
|
||||
SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
|
||||
echo "✓ Backup criado: $BACKUP_FILE ($SIZE)"
|
||||
else
|
||||
echo "✗ ERRO: Backup não foi criado!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ============ LIMPAR BACKUPS ANTIGOS ============
|
||||
echo "Limpando backups com mais de $RETENTION_DAYS dias..."
|
||||
find "$BACKUP_DIR" -name "minio-backup-*.tar.gz" -mtime +$RETENTION_DAYS -delete
|
||||
|
||||
# ============ LISTAR BACKUPS RESTANTES ============
|
||||
echo ""
|
||||
echo "Backups disponíveis:"
|
||||
ls -lh "$BACKUP_DIR"/minio-backup-*.tar.gz 2>/dev/null || echo "Nenhum backup encontrado."
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "Backup concluído em: $(date)"
|
||||
echo "=========================================="
|
||||
Reference in New Issue
Block a user