#!/bin/sh # Ce script exporte la DB bitwarden # Derniere modification : 18.09.2026 - S. SIMON # Initialisation d'une variable d'erreur ERROR_VAR="0" # Initialisation des variables DATETIME=`date +%Y%m%d-%H%M` LADATE=`date +%Y%m%d` # Initialisation du fichier de log LOG_FILE=/volume29/Backup/vaultwarden/exportbw_`date +%Y%m%d`.log if [ -e $LOG_FILE ]; then echo $DATETIME \| INFO \| Le fichier de log existe deja >>$LOG_FILE 2>&1 else touch $LOG_FILE echo \|---------- >$LOG_FILE 2>&1 echo \|-- JOURNAL DU SCRIPT D\'EXPORT BITWARDEN >>$LOG_FILE 2>&1 echo \|---------- >>$LOG_FILE 2>&1 if [ $? -eq 0 ]; then echo $DATETIME \| INFO \| Le fichier de log a ete cree avec succes >>$LOG_FILE 2>&1 else echo $DATETIME \| ERREUR \| Erreur lors de la creation du fichier de log >>$LOG_FILE 2>&1 ERROR_VAR=$(($ERROR_VAR +1)) fi fi # Suppression des fichiers de plus de 10 jours echo -- >>$LOG_FILE 2>&1 echo $DATETIME \| INFO \| Suppression des fichiers de plus de 10 jours >>$LOG_FILE 2>&1 find /volume29/Backup/vaultwarden/ -type f -mtime +10 -exec rm -rf {} + >>$LOG_FILE 2>&1 if [ $? -eq 0 ]; then echo $DATETIME \| INFO \| Suppression des anciens fichiers : OK >>$LOG_FILE 2>&1 else echo $DATETIME \| ERREUR \| Erreur lors de la suppression des fichiers de plus de 10 jours >>$LOG_FILE 2>&1 ERROR_VAR=$(($ERROR_VAR +1)) fi # RECUPERATION DYNAMIQUE DU RESEAU ET DE LA VERSION MARIADB echo -- >>$LOG_FILE 2>&1 echo $DATETIME \| INFO \| Recuperation du reseau Docker >>$LOG_FILE 2>&1 MYSQL_NETWORK=$(docker inspect vaultwarden_mysql --format '{{range $k, $v := .NetworkSettings.Networks}}{{$k}}{{end}}') MYSQL_IMAGE=$(docker inspect vaultwarden_mysql --format '{{.Config.Image}}') if [ -z "$MYSQL_NETWORK" ]; then echo $DATETIME \| ERREUR \| Impossible de recuperer le reseau Docker - conteneur vaultwarden_mysql arrete ? >>$LOG_FILE 2>&1 ERROR_VAR=$(($ERROR_VAR +1)) echo -- >>$LOG_FILE 2>&1 echo $DATETIME \| INFO \| Erreurs rencontrees : $ERROR_VAR >>$LOG_FILE 2>&1 echo -- >>$LOG_FILE 2>&1 exit 1 fi echo $DATETIME \| INFO \| Reseau : $MYSQL_NETWORK - Image : $MYSQL_IMAGE >>$LOG_FILE 2>&1 # EXPORT DE LA DB BITWARDEN echo -- >>$LOG_FILE 2>&1 echo $DATETIME \| INFO \| Export de la DB Bitwarden >>$LOG_FILE 2>&1 DUMP_FILE=/volume29/Backup/vaultwarden/bitwardendb_$DATETIME.sql docker run --rm \ --network $MYSQL_NETWORK \ $MYSQL_IMAGE \ mariadb-dump -h vaultwarden_mysql -u bitwarden -p'bitwarden' bitwardendb \ > $DUMP_FILE 2>/tmp/vaultwarden_dump_err.log if [ $? -eq 0 ]; then echo $DATETIME \| INFO \| Export de la DB Bitwarden : OK >>$LOG_FILE 2>&1 else ERR=$(cat /tmp/vaultwarden_dump_err.log) rm -f $DUMP_FILE echo $DATETIME \| ERREUR \| Erreur lors de l\'Export de la DB Bitwarden : $ERR >>$LOG_FILE 2>&1 ERROR_VAR=$(($ERROR_VAR +1)) fi # Fin du script echo -- >>$LOG_FILE 2>&1 echo $DATETIME \| INFO \| Erreurs rencontrees : $ERROR_VAR >>$LOG_FILE 2>&1 echo -- >>$LOG_FILE 2>&1