82 lines
2.9 KiB
Bash
82 lines
2.9 KiB
Bash
#!/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=/volume1/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 /volume1/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=/volume1/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 |