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