Project
Project
Project
Système d'Exploitation 2
SCRIPTING BASH
Mini-projet
Université Mohammed V de Rabat École Normale Supérieure de Rabat
Contents
I. Enoncer :.......................................................................................................................................... 2
II. Réalisation : ..................................................................................................................................... 2
a. Les outils : .................................................................................................................................... 2
b. Les étapes : .................................................................................................................................. 3
c. Realisation de Sckripte ................................................................................................................ 4
I. Enoncer :
Vous pouvez faire preuve de créativité en ajoutant d’autres éléments qui permettraient
d’avoir plus de détails sur la sauvegarde. Cela sera bien entendu pris en considération par
rapport à la note attribuée. Sera également pris en considération le degré auquel le script
est paramétrable.
II. Réalisation :
a. Les outils :
Pour réaliser ce script Bash, il est nécessaire de disposer des outils suivants :
# Variables de configuration
DB_HOST="127.0.0.1"
DB_PORT="3306"
DB_USER="root"
DB_PASS="root"
DB_NAME="miniPorject"
BACKUP_DIR="/var/backups/mysql"
b. Les étapes :
▪ Les étapes pour réaliser le script Bash :
Pour réaliser ce script Bash, voici les étapes à suivre :
1. Vérifier la connectivité au serveur : utiliser la commande ‘mysqladmin’ pour tester la
connectivité au serveur MySQL, en spécifiant l'adresse (par défaut 127.0.0.1) et le
port (par défaut 3306). Si la connectivité échoue, le script devra afficher un message
d'erreur et s'arrêter.
2. Créer un répertoire pour la sauvegarde : utiliser la commande date pour récupérer la
date courante au format ISO et créer un répertoire portant ce nom.
3. Effectuer la sauvegarde de la base de données : utiliser la commande ‘mysqldump’
pour sauvegarder la base de données dans le répertoire créé à l'étape 2. Il est
possible de spécifier des options pour exclure certaines tables ou pour ajouter des
informations de structure de tables.
4. Générer les statistiques : utiliser les commandes SQL pour récupérer les statistiques
souhaitées depuis la base de données (nombre de produits vendus, nombre de
produits restants en stock, total des ventes, etc.). Stocker ces statistiques dans un
fichier JSON dans le même répertoire que le fichier de sauvegarde.
5. Prévoir un système pour éviter les conflits : utiliser un système de verrouillage pour
s'assurer qu'il n'y a pas de conflit entre une sauvegarde manuelle et une sauvegarde
programmée.
6. Paramétrage : Il serait intéressant de rendre le script paramétrable pour spécifier les
options de sauvegarde, les informations de connexion à la base de données, les
données de statistiques à collecter, etc.
Il est important de noter que pour réaliser ce script, il est nécessaire d'avoir une certaine
connaissance de la ligne de commande, de MySQL et des commandes SQL. Il serait
également utile de tester le script avec une base de données de test pour s'assurer de son
bon fonctionnement avant de l'utiliser sur une base de données réelle.
▪ Les étapes pour réaliser la base de donnes :
Pour créer une base de données MySQL bien élaborée pour l'utilisation dans un script de
sauvegarde automatisé, voici quelques étapes à suivre :
1. Ouvrez un terminal et connectez-vous à MySQL en utilisant la commande mysql -u [nom
d'utilisateur] -p.
2. Créez une nouvelle base de données en utilisant la commande suivante : CREATE
DATABASE [nom_de_la_base_de_données];
3. Utilisez cette nouvelle base de données en exécutant la commande USE
[nom_de_la_base_de_données];
4. Créez des tables pour stocker les données en utilisant des commandes SQL de
création de table standard. Assurez-vous que les tables ont des noms explicites et des
colonnes appropriées pour stocker les données désirées.
5. Ajoutez des données à vos tables en utilisant des commandes SQL d'insertion de
données standard.
6. Créez des vues pour permettre de générer des statistiques sur la base de données en
utilisant des commandes SQL de création de vue standard. Assurez-vous que les vues
ont des noms explicites et qu'elles sélectionnent les données appropriées pour
générer les statistiques désirées.
7. Utilisez des commandes SQL de sélection standard pour vérifier que les données sont
correctement stockées dans les tables et les vues.
8. Configurez les permissions d'accès à la base de données pour permettre à l'utilisateur
de sauvegarde d'accéder à la base de données pour effectuer les sauvegardes.
9. Testez la connectivité à la base de données en utilisant la commande mysql -h
[nom_de_l'hôte] -P [numéro_du_port] -u [nom_d'utilisateur] -p
[nom_de_la_base_de_données]
c. Realisation de Sckripte
▪ Realisation de Sckripte bash :
Script Bash qui permet d’effectuer automatiquement la sauvegarde d’une base de données
MySQL de façon périodique :
#!/bin/bash
Ce script vérifie d'abord la connectivité au serveur MySQL (adresse par défaut : 127.0.0.1,
port : 3306).
Ensuite il récupère les informations de la base de données (nom, utilisateur, mot de passe)
et définit les répertoires de sauvegarde. Il vérifie ensuite l'existence d'un fichier de
sauvegarde pour la même date, il crée le répertoire de sauvegarde si nécessaire, puis
exporte la base de données dans un fichier .sql avec mysqldump.
Enfin, il génère des statistiques de la base de données (nombre de produits vendus, total des
ventes) sous forme de fichier JSON.
Il est possible de paramétrer les informations
▪ Realisation de Sckripte Sql :
code SQL qui crée une base de données appelée "sales_db" avec des tables pour stocker des
informations sur les ventes, les produits et les clients :
Ce code crée une base de données nommée "sales_db" avec trois tables: "sales", "products"
et "customers". La table "sales" contient des informations sur les ventes, telles que l'ID de
vente, l'ID de produit, l'ID de client, la date de vente, la quantité de vente et le total de
vente. La table "products" contient des informations sur les produits, telles que l'ID de
produit, le nom du produit, le prix du produit et la quantité de produit. La table "customers"
contient des informations sur les clients, telles que l'ID de client, le nom du client et l'e-mail
du client.