====== Différences ======
Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.
sauvegarde [2013/12/24 10:45] r.doiteau [Script] |
sauvegarde [2019/05/11 14:35] (Version actuelle) |
||
---|---|---|---|
Ligne 208: | Ligne 208: | ||
===== Déroulement de la sauvegarde et de la restauration ===== | ===== Déroulement de la sauvegarde et de la restauration ===== | ||
+ | |||
+ | == La Sauvegarde == | ||
+ | |||
+ | La sauvegarde se déroule en plusieurs étapes: | ||
+ | ==Initialisation et créations des différents dossiers et fichiers:== | ||
+ | __script_init.sh__: | ||
+ | Les dossiers crées sont: | ||
+ | -mnt/home => point de montage du FreeNas. | ||
+ | -mnt/sauvegarde/complete => la sauvegarde complète sera placée ici. | ||
+ | -mnt/sauvegarde/incrementale => les sauvegardes incrémentielles seront placées ici. | ||
+ | -mnt/sauvegarde/script => les scripts seront placés ici. | ||
+ | |||
+ | Le script Initialisation créer les fichiers scripts suivants dans le dossier mnt/sauvegarde/script: | ||
+ | |||
+ | {{::script.png|}} | ||
+ | |||
+ | __ConfNas.txt__: Contient l'adresse ip du serveur FreeNas et la où il est monté. | ||
+ | __sauvegarde.sh__: Programme principale de la sauvegarde qui fait appel au différents fonctions et variables nécessaires. Il contient également l'aide à l'utilisateur. | ||
+ | __script_conf.sh__: Inscrit dans le fichier ConfNas.txt la configuration du FreeNas (adresse Ip et point de montage.) | ||
+ | __script_listfichier.sh__: Lit le fichier de log et l'affiche. | ||
+ | __script_restauration.sh__: Fonctions et variables nécessaires à la restauration de la sauvegarde. | ||
+ | __script_sauvegarde.sh__: Fonctions et variables nécessaires à la sauvegarde. | ||
==== Fichier complet d'installation ==== | ==== Fichier complet d'installation ==== | ||
{{::sauv.tar|}} | {{::sauv.tar|}} | ||
+ | |||
+ | ===== ReadMe ===== | ||
+ | |||
+ | <code=bash> | ||
+ | |||
+ | ################################################################## | ||
+ | # PROJET : SCRIPT DE SAUVEGARDE # | ||
+ | # FICHIER : README.txt # | ||
+ | # EQUIPE : M.BAILLEUL R.DOITEAU S.CHEVRIER M.CHANTELOUP # | ||
+ | ################################################################## | ||
+ | |||
+ | |||
+ | +------------------------------+ | ||
+ | |------- RESUME -------| | ||
+ | +------------------------------+ | ||
+ | |||
+ | Ce programme sauvegarde les répertoires utilisateurs tout les jours de façon incrémentale et fait une sauvegarde complète une fois par semaine. | ||
+ | Il envoie un mail à l'administrateur avec le détail de la sauvegarde. | ||
+ | |||
+ | |||
+ | +------------------------------+ | ||
+ | |------- SOMMAIRE -------| | ||
+ | +------------------------------+ | ||
+ | |||
+ | Installation | ||
+ | |_Prérequis | ||
+ | |_Installation du programme | ||
+ | Configuration | ||
+ | |_Configuration du programme | ||
+ | Utilisation | ||
+ | |_Usage | ||
+ | |||
+ | |||
+ | +------------------------------+ | ||
+ | |------- INSTALLATION -------| | ||
+ | +------------------------------+ | ||
+ | |||
+ | ---- Prérequis ---- | ||
+ | |||
+ | Il est nécessaire d'avoir un serveur de fichier (FreeNas), un serveur de sauvegarde (sous Debian 7) et des machines clientes (Windows 7 et/ou Debian 7) | ||
+ | Tout ceci dans le même réseau. | ||
+ | |||
+ | |||
+ | ---- Installation du programme ---- | ||
+ | |||
+ | - Télécharger le fichier sauv.tar | ||
+ | - Le décompresser avec la commande: tar xvf sauv.tar, il décompresse l'archive à l'emplacement du fichier sauv.tar. | ||
+ | - Allez dans PROJET_SAUVEGARDE. | ||
+ | - Lancer la commande: bash script_init.sh, il crée les dossiers et fichiers nécessaire au fonctionnement des sauvegardes et initialise l'environnement. | ||
+ | |||
+ | |||
+ | +------------------------------+ | ||
+ | |------- CONFIGURATION ------| | ||
+ | +------------------------------+ | ||
+ | |||
+ | ---- Configuration du programme ---- | ||
+ | |||
+ | - Pour lancer la configuration de la sauvegarde, lancer la commande: sauvegarde.sh -C -i "votre_ip_serveur" -m "votre_répertoire_source" | ||
+ | - L'installation à configurée crontab, de façon à ce que le script de sauvegarde soit lancé tous les jours. | ||
+ | - Pour modifier la fréquence ou pour desactiver la sauvegarde, il faut éditer /etc/crontab et commenter la dernière ligne ou la modifier en fonctions de la configuration souhaitée | ||
+ | |||
+ | |||
+ | +------------------------------+ | ||
+ | |------- UTILISATION --------| | ||
+ | +------------------------------+ | ||
+ | |||
+ | |||
+ | ---- Usage ---- | ||
+ | >sauvegarde.sh -h | ||
+ | |||
+ | Les options obligatoires : | ||
+ | |||
+ | |||
+ | -C , -i , -m , Configuration du serveur de fichier | ||
+ | [-i] XXX.XXX.XXX.XXX IP du serveur de fichiers | ||
+ | [-m] /rep Définit l'emplacement du répertoire source | ||
+ | |||
+ | |||
+ | -R, [-u],[-r],[-f],[-e],[-d], Restauration | ||
+ | [-u] user suivi du nom de l'utilisateur | ||
+ | [-r] repertoire suivi du nom du repertoire | ||
+ | [-f] fichier suivi du nom du fichier | ||
+ | [-e] .ext suivi de l'extension | ||
+ | [-d] date suivi de la date de récupération souhaité | ||
+ | |||
+ | |||
+ | -S, [-c] Sauvegarde des Répertoire personnels | ||
+ | [-c] force la sauvegarde complète | ||
+ | |||
+ | |||
+ | Exemple d'utilisation : | ||
+ | # Configuration du serveur de fichier | ||
+ | bash sauvegarde.sh -C -i 192.168.1.1 -m /mnt/vol0 | ||
+ | # Sauvegarde des répertoires utilisateurs | ||
+ | bash sauvegarde.sh -S | ||
+ | - Pour forcer une sauvegarde complete | ||
+ | bash sauvegarde.sh -S -c | ||
+ | # Restauration : | ||
+ | - De tous les fichier de l'utilisateur 'util1' avec l'extension .doc sauvegardé le 22/10/2013 | ||
+ | bash sauvegarde.sh -R -u util1 -f *.doc -d 10-22 | ||
+ | - Du repertoire personnel de util2 | ||
+ | bash sauvegarde.sh -R -u util2 | ||
+ | </code> | ||
===== Détails des différents scripts ===== | ===== Détails des différents scripts ===== | ||
+ | |||
+ | ==script_init.sh== | ||
+ | |||
+ | <code=bash> | ||
+ | #!/bin/sh | ||
+ | ################################################################## | ||
+ | # PROJET : SCRIPT DE SAUVEGARDE # | ||
+ | # FICHIER : script_init.sh # | ||
+ | # EQUIPE : M.BAILEUL R.DOITEAU S.CHEVRIER M.CHANTELOUP # | ||
+ | ################################################################## | ||
+ | |||
+ | |||
+ | REPSAVE=/mnt/sauvegarde | ||
+ | REPSAUVALL=$REPSAVE/complete | ||
+ | REPSAUVINC=$REPSAVE/incrementale | ||
+ | REPLOG=$REPSAVE/journal | ||
+ | REPSCRIPT=$REPSAVE/script | ||
+ | REPHOME=/mnt/home | ||
+ | |||
+ | ######################################################### CREATION REPERTOIRE ############################################################ | ||
+ | |||
+ | mkdir $REPSAVE | ||
+ | mkdir $REPSAUVALL | ||
+ | mkdir $REPSAUVINC | ||
+ | mkdir $REPLOG | ||
+ | mkdir $REPSCRIPT | ||
+ | mkdir $REPHOME | ||
+ | |||
+ | ############################################################## COPIE SCRIPT ############################################################## | ||
+ | |||
+ | cp ./data/script_sauvegarde.sh $REPSCRIPT/script_sauvegarde.sh | ||
+ | cp ./data/script_restauration.sh $REPSCRIPT/script_restauration.sh | ||
+ | cp ./data/script_conf.sh $REPSCRIPT/script_conf.sh | ||
+ | cp ./data/script_listfichier.sh $REPSCRIPT/script_listfichier.sh | ||
+ | cp ./data/sauvegarde.sh $REPSCRIPT/sauvegarde.sh | ||
+ | |||
+ | chmod 755 $REPSCRIPT/sauvegarde.sh | ||
+ | |||
+ | ################################################################ CRONTAB ################################################################# | ||
+ | |||
+ | echo "0 2 * * * root bash /mnt/sauvegarde/script/sauvegarde.sh -S" >>/etc/crontab | ||
+ | |||
+ | ################################################################ COMMANDE ################################################################ | ||
+ | |||
+ | echo "Pour renseigné l'adresse IP et le repertoire source de votre sauvegadre" | ||
+ | echo "Executez cette commande :" | ||
+ | echo "bash sauvegarde.sh -C -i (l'ip du serveur) -m (repertoire source)" | ||
+ | |||
+ | ################################################################## MSMTP ################################################################# | ||
+ | aptitude install msmtp -y --assume-yes | ||
+ | |||
+ | (echo "account default" | ||
+ | echo "tls on" | ||
+ | echo "host smtp.gmail.com" | ||
+ | echo "port 587" | ||
+ | echo "from doiteau.romain@gmail.com" | ||
+ | echo "auth on" | ||
+ | echo "user doiteau.romain" | ||
+ | echo "password ********" | ||
+ | echo "tls_starttls on" | ||
+ | echo "tls_certcheck on" | ||
+ | echo "tls_trust_file /etc/ssl/certs/ca-certificates.crt" | ||
+ | ) > /root/.msmtprc | ||
+ | |||
+ | ################################################################## PATH ################################################################## | ||
+ | |||
+ | varPATH=$PATH | ||
+ | echo "export PATH=/mnt/sauvegarde/script:$varPATH" >> /root/.bashrc | ||
+ | su | ||
+ | exit</code> | ||
+ | |||
==ConfNas.txt== | ==ConfNas.txt== |