Add test.sh
This commit is contained in:
parent
b296455b48
commit
fc4104bba2
1 changed files with 124 additions and 0 deletions
124
test.sh
Normal file
124
test.sh
Normal 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
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue