Add test.sh

This commit is contained in:
Willy 2026-05-04 15:30:25 +02:00
parent b296455b48
commit fc4104bba2

124
test.sh Normal file
View file

@ -0,0 +1,124 @@
#!/bin/bash
#Variables d'environnement
DATADIR="/var/lib/mysql" #Emplacement base de données
TARGET="/home/utilisateur/backups" #Emplacement de la sauvegarde
UserSavePreload="" #Pour forcer le nom utilisateur à utiliser pour faire les sauvegardes
UserSavePassPreload="" #Pour forcer le mot de passe de l'utilisateur
echo
echo "Script de sauvegarde base de données mariadb avec MariaBackup"
echo
# Vérification mariadb-backup est installé.
MariaBackupVersion=$(command mariabackup -v 2> /dev/null)
if [ -z "$MariaBackupVersionj" ]; then
echo "ERREUR: mariadb-backup non installé"
exit 1
fi
# Extraction des versions
BACKUP_VER=$($mariabackup --version 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1)
MARIADB_VER=$(mariadb --version 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1)
# Comparaison des versions
if [ "$BACKUP_VER" = "$MARIADB_VER" ]; then
echo "OK Versions identiques"
exit 0
else
echo "Attention versions différentes, veuillez installer la version adapté"
exit 0
fi
function SaveDB {
read -p "Utilisateur ? " UserSave
read -p "Mot de passe ? "UserSavePass
UserSave=$UserSavePreload
UserSavePass=$UserSavePassPreload
mariabackup --backup --parallel=2 --datadir=$DATADIR --target-dir=$TARGET/full-$(date +%Y%m%d) --user='$UserSave' --password='$UserSavePass'
}
# Fonction creation utilisateur MariaDB
function UserCreate {
read -p "Nouveau nom d'utilisateur MariaDB ? " UserCreateName
if [ -z "$UserCreateName" ]; then
echo "❌ Erreur: Le nom d'utilisateur ne peut pas être vide"
exit 1
fi
read -sp "Mot de passe ? " UserCreatePassword
read -sp "Confirmer mot de passe ? " UserCreatePasswordRepeat
if [ -z "$UserCreatePassword" ]; then
echo "❌ Le mot de passe ne peut pas être vide"
exit 1
fi
if [ "$UserCreatePassword" != "$UserCreatePasswordRepeat" ]; then
echo "❌ Les mots de passe ne correspondent pas"
exit 1
fi
echo "🔐 Connexion à MariaDB..."
mariadb -u root -p <<EOF
CREATE USER IF NOT EXISTS '$UserCreateName'@'localhost' IDENTIFIED BY '$UserCreatePassword';
GRANT RELOAD, PROCESS, LOCK TABLES, BINLOG MONITOR ON *.* TO '$UserCreateName'@'localhost';
FLUSH PRIVILEGES;
EOF
if [ $? -eq 0 ]; then
echo
echo "✅ Utilisateur créé avec succès !"
echo
echo "📋 Récapitulatif :"
echo " Utilisateur: '$UserCreateName'@localhost"
echo " Droits: RELOAD, PROCESS, LOCK TABLES, BINLOG MONITOR"
else
echo
echo "❌ Erreur lors de la création de l'utilisateur"
echo
exit 1
fi
}
function UserList {
echo
echo "Liste des utilisateurs de la base de données"
mariadb -u root -p -e "SELECT User, Host FROM mysql.user"
echo
}
# Menu principal
while true; do
echo
echo -e "1 - Sauvegarder une base de données"
echo -e "2 - Restaurer une base de données"
echo -e "3 - Créer un utilisateur dédié au sauvegarde"
echo -e "4 - Exit"
echo
read -p "Choisir votre action ? " choice
echo
case "$choice" in
1) SaveDB ;;
2) RestoreDB ;;
3) UserCreate ;;
4) UserList ;;
5) exit 1 ;;
esac
done