#!/bin/bash # Hook Borgmatic - Dump MySQL Seafile dockerisé avant backup BACKUP_DIR="/opt/seafile/backups/mysql" DATE=$(date +%Y%m%d-%H%M) SEAFILE_CONTAINER="seafile" # Nom de votre conteneur Seafile MYSQL_CONTAINER="seafile-mysql" # Ou le nom de votre conteneur MySQL # Créer le répertoire de backup mkdir -p "$BACKUP_DIR" # Charger les identifiants depuis .env si nécessaire if [ -f /etc/borgmatic/.env ]; then source /etc/borgmatic/.env fi # Option A: Si MySQL est dans le conteneur Seafile #docker exec "$SEAFILE_CONTAINER" mysqldump \ # -u seafile -p"${SEAFILE_DB_PASSWORD:-votre_mot_de_passe}" \ # --single-transaction --quick \ # ccnet_db >"$BACKUP_DIR/ccnet_db-$DATE.sql" # #docker exec "$SEAFILE_CONTAINER" mysqldump \ # -u seafile -p"${SEAFILE_DB_PASSWORD}" \ # --single-transaction --quick \ # seafile_db >"$BACKUP_DIR/seafile_db-$DATE.sql" # #docker exec "$SEAFILE_CONTAINER" mysqldump \ # -u seafile -p"${SEAFILE_DB_PASSWORD}" \ # --single-transaction --quick \ # seahub_db >"$BACKUP_DIR/seahub_db-$DATE.sql" # Option B: Si MySQL est dans un conteneur séparé (décommentez si c'est le cas) docker exec "$MYSQL_CONTAINER" mysqldump \ -u seafile -p"${SEAFILE_DB_PASSWORD}" \ --single-transaction --quick --databases \ ccnet_db seafile_db seahub_db >"$BACKUP_DIR/seafile-all-$DATE.sql" # Vérifier que les dumps sont créés if [ -f "$BACKUP_DIR/ccnet_db-$DATE.sql" ]; then echo "✓ Dumps MySQL Seafile créés avec succès" # Nettoyer les anciens dumps (garder 7 jours) find "$BACKUP_DIR" -name "*.sql" -mtime +7 -delete else echo "✗ Erreur lors de la création des dumps MySQL" exit 1 fi