Vous êtes sur la page 1sur 4

Architecture du Projet 

Ce projet se compose de 3 sous dossiers et du répertoire courant.


Dans le dossier appelé « web server » on retrouve les fichiers liés au déploiement du serveur
web contenant le zip. On retrouve donc le zip en question, le script python pour déployer le
serveur web ainsi qu'une page HTML.
Dans le sous-dossier appelé « module » on va retrouver l'ensemble des classes utilisées par
le programme pour récupérer le fichier zip, le manipuler et le storer sur le serveur smb. On
retrouve donc le fichier smb_server.py qui s’occupe de la gestion du server SMB, le fichier
generate_config_file.py qui permet de générer un template de fichier de config pour le
programme ainsi que le fichier scripting_system.py qui définit l’ensemble des fonctions de
récupération, extraction, formatage du fichier zip ainsi que l’envoi de mail et de log.
Dans le répertoire courant on retrouve le fichier main.py qui lance le programme et appelle
les fonctions des autres fichiers dans l’ordre définie. Le fichier requirements.sh permet d’
installer les dépendances du projet, le fichier log.log qui récupère les log du programme ainsi
que le fichier config.json qui définie les variables que l’utilisateur doit renseigner pour le bon
fonctionnement du programme.
Le fichier server.sh permet de lancer le fichier depuis la racine du projet et
generate_config.sh de générer le template du fichier de config depuis la racine du projet.
Enfin dans le sous-dossier « documentation » on retrouve la documentation du projet, À
savoir comment lancer le programme ainsi qu’une documentation technique du projet
Diagramme des classes du Projet :

Description du Projet :
- Première partie : classe ScriptingSystem :
Au lancement du projet lorsque on va exécuter le fichier main.py, celui-ci va
appeler le constructeur de la classe ScriptingSystem. Celui-ci prend en argument
le port sur lequel le serveur web local héberge le zip ainsi que le path relatif au
fichier config.json. La première méthode qui va ensuite être appelée est
configure(). Dans cette méthode on va initialiser l'ensemble des attributs de la
classe ScriptingSystem, à partir des données stockées dans le fichier config.
On aura en effet besoin de ces informations dans la suite du programme.
On appelle ensuite la méthode get_zip() qui va récupérer le zip stocké sur le
serveur web. On utilise pour cela la bibliothèque http de python. La méthode
extract_zip() extrait ensuite les fichiers du zip, puis on appelle la méthode
check_file() qui va vérifier que le fichier extrait est bien le fichier voulu
(dumpfile.sql dans notre cas récupéré à partir du champ ‘file’ du fichier de
config).

- Deuxième partie : classe SMBServer :

Par suite si le fichier récupéré est le bon on va instancier la classe SMBServer qui
récupère dans son constructeur les options de configuration du server SMB ( ip,
user, mdp, clientname, foldersharename) ainsi que le temps de sauvegarde des
fichier sur le server SMB (time_to_save définit par l’utilisateur dans le fichier de
config), et se connecte avec la librairie python smb.SMBConnection au server
SMB.
On execute ensuite la méthode send_to_smb_server() de la classe SMBServer , qui va
envoyer au server SMB, le fichier zip récupéré et formatté entre temps en .tgz
au server SMB. Puis la méthode archival_check() qui va vérifier tous les fichiers
stockés sur le server SMB et les supprimer si leur date de sauvegarde est
dépassée.

- Troisième partie : Envoi Email :

Enfin la classe ScriptingSystem va exécuter la méthode remote() qui va supprimer


les fichiers et dossiers intermédiaires crées durant le process, puis la méthode
send_email() qui envoie un email de compte rendu au destinataire définit dans le
fichier de config en utilisant la librairie python smtplib et les infos définies dans
la partir ‘email’ du fichier de config.

- Web Server :
Indépendamment dans le dossier web_server, le fichier web_serveur.py
permet de lancer le serveur web contenant le fichier zip, il utilise entre autres
les librairies http et socketserver et execute le lancement de ce server en
localhost sur le port 8080.

Annexe du Projet :

Mise en place du server SMB sur Windows


https://www.dell.com/support/kbdoc/fr-fr/000175311/configuration-de-votre-
ordinateur-ou-de-votre-serveur-pour-la-num%C3%A9risation-smb-server-message-block-
sur-les-imprimantes-laser-dell-en-anglais

Mise en place de la crontab pour exécuter le script tous les jours :


https://active-directory-
wp.com/docs/Usage/How_to_add_a_cron_job_on_Windows/Scheduled_tasks_and_cron_
jobs_on_Windows/index.html

Vous aimerez peut-être aussi