====== Différences ======

Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue comparative

sauvegarde [2013/12/24 10:40]
r.doiteau
sauvegarde [2019/05/11 14:35] (Version actuelle)
Ligne 209: Ligne 209:
 ===== Déroulement de la sauvegarde et de la restauration ===== ===== Déroulement de la sauvegarde et de la restauration =====
  
-==== Script ​====+== 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 ​====
  
 {{::​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 =====
 +
 +==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==
 +
 +<​code=bash>​
 +192.168.231.110 #Adresse du FreeNas
 +/​mnt/​vol0 ​      #​Point de montage du FreeNas
 +</​code>​
 +
 +==sauvegarde.sh==
 +
 +<​code=bash>​
 +#!/bin/sh
 +##################################################################​
 +# PROJET : SCRIPT DE SAUVEGARDE ​                                 #
 +# FICHIER : script_sauvegarde.sh ​                                #
 +# EQUIPE : M.BAILEUL R.DOITEAU S.CHEVRIER M.CHANTELOUP ​          #
 +##################################################################​
 +
 +
 +###################################################################​
 +############################​ VARIABLES ############################​
 +###################################################################​
 +REPSAVE=/​mnt/​sauvegarde
 +REPSCRIPT=$REPSAVE/​script
 +SAUVCOMP=0
 +OPTSCRIPT="​."​
 +CIPNAS="​."​
 +CREPFNAS="​."​
 +USER="​.*"​
 +DOSSIER="​.*"​
 +FICHIER="​.*"​
 +EXTENSION="​.*"​
 +DATER="​.*"​
 +
 +###################################################################​
 +#############################​ OPTION ##############################​
 +###################################################################​
 +
 +#### Fonctions
 +usage() {
 +  nom=`basename $0`
 +  echo "​Usage:​ bash sauvegarde.sh OPTION"​
 +  echo "Les options obligatoires :"
 +  echo " ​        "​
 +  echo " ​  "​
 +  echo " ​ -C , -i , -m , Configuration du serveur de fichier "
 +  echo " ​      [-i] XXX.XXX.XXX.XXX ​    IP du serveur de fichiers ​ "
 +  echo " ​      [-m] /rep                Définit l'​emplacement du répertoire source "
 +  echo " ​        "​
 +  echo " ​  "​
 +  echo " ​ -R, [-u],​[-r],​[-f],​[-e],​[-d], ​ Restauration "
 +  echo " ​      [-u] user                 suivi du nom de l'​utilisateur"​
 +  echo " ​      [-r] repertoire ​          suivi du nom du repertoire"​
 +  echo " ​      [-f] fichier ​             suivi du nom du fichier"​
 +  echo " ​      [-e] .ext                 suivi de l'​extension"​
 +  echo " ​      [-d] date                 suivi de la date de récupération souhaité"​
 +  echo " ​        "​
 +  echo " ​  "​
 +  echo " ​ -S, [-c]  Sauvegarde des Répertoire personnels"​
 +  echo " ​      ​[-c] ​                     force la sauvegarde complète "
 +  echo " ​    "​
 +  echo " ​      "​
 +  echo "​Exemple d'​utilisation :"
 +  echo " ​ # Configuration du serveur de fichier"​
 +  echo " ​   bash sauvegarde.sh -C -i 192.168.1.1 -m /​mnt/​vol0"​
 +  echo " ​ # Sauvegarde des répertoires utilisateurs"​
 +  echo " ​   bash sauvegarde.sh -S"
 +  echo " ​   - Pour forcer une sauvegarde complete"​
 +  echo " ​   bash sauvegarde.sh -S -c"
 +  echo " ​ # Restauration :"
 +  echo " ​   - De tous les fichier de l'​utilisateur '​util1'​ avec l'​extension .doc sauvegardé le 22/​10/​2013"​
 +  echo " ​   bash sauvegarde.sh -R -u util1 -f *.doc -d 10-22"
 +  echo " ​   - Du repertoire personnel de util2"
 +  echo " ​   bash sauvegarde.sh -R -u util2"
 +  }
 +
 +#### TEST ET LECTURE DES OPTIONS
 +## Exeption de l'​option -h ou --help
 +if [ $# -eq 1 -a "​$1"​ = -h ] || [ $# -eq 1 -a "​$1"​ = --help ] ; then usage; exit 2; fi
 +
 +## Test et Traitement des options
 +while getopts ":​SRcCi:​m:​u:​r:​f:​d:​e:"​ option
 +do
 + case $option in
 + c)
 + if [ $OPTSCRIPT = "​sauvegarde"​ ];then
 + echo "​Sauvegarde complete forcé"​
 + SAUVCOMP=1
 + else
 + echo "​l'​option -c ne fonctionne qu'​avec l'​option -S"
 + echo "​Saisissez « bash script_sauvegarde.sh --help » pour plus d'​informations."​
 + exit 2
 + fi
 + ;;
 + C)
 + if [ $OPTSCRIPT = "​."​ ];then
 + echo "​Configuration Nas"
 + OPTSCRIPT="​configuration"​
 + else
 + echo "​l'​option -C n s'​utilise pas avec les options -S ou -R"
 + echo "​Saisissez « bash script_sauvegarde.sh --help » pour plus d'​informations."​
 +                                exit 2
 + fi
 + ;;
 + d)
 + if [ $OPTSCRIPT = "​restauration"​ ];then
 + DATER="​$OPTARG.*"​
 + else
 +                                echo "​l'​option -d ne fonctionne qu'​avec l'​option principale -R"
 +                                echo "​Saisissez « bash script_sauvegarde.sh --help » pour plus d'​informations."​
 +                                exit 2
 +                        fi
 +                        ;;
 +                e)
 +                        if [ $OPTSCRIPT = "​restauration"​ ];then
 +                                EXTENSION="​$OPTARG.*"​
 +                        else
 +                                echo "​l'​option -e ne fonctionne qu'​avec l'​option principale -R"
 +                                echo "​Saisissez « bash script_sauvegarde.sh --help » pour plus d'​informations."​
 +                                exit 2
 +                        fi
 +                        ;;
 +                f)
 +                        if [ $OPTSCRIPT = "​restauration"​ ];then
 +                                FICHIER="​$OPTARG.*"​
 +                        else
 +                                echo "​l'​option -f ne fonctionne qu'​avec l'​option principale -R"
 +                                echo "​Saisissez « bash script_sauvegarde.sh --help » pour plus d'​informations."​
 +                                exit 2
 +                        fi
 +                        ;;
 + i)
 + if [ $OPTSCRIPT = "​configuration"​ ];then
 + echo $OPTARG |grep -Eq '​^((25[0-5]|2[0-4][0-9]|[01]?​[0-9][0-9]?​)\.){3}(25[0-4]|2[0-4][0-9]|[01]?​[0-9][0-9]?​)$'​
 + if [ $? = 0 ];then
 + CIPNAS=$OPTARG
 + else
 + echo "-i $OPTARG => IP Non Valide"​
 + exit 1
 + fi
 + else
 + echo "​l'​option -i ne fonctionne qu'​avec l'​option -C et -m"
 + echo "​Saisissez « bash script_sauvegarde.sh --help » pour plus d'​informations."​
 + exit 2
 + fi
 + ;;
 + m)
 + if [ $OPTSCRIPT = "​configuration"​ ];then
 + CREPFNAS=$OPTARG
 + else
 + echo "​l'​option -m ne fonctionne qu'​avec l'​option -C et -i"
 + echo "​Saisissez « bash script_sauvegarde.sh --help » pour plus d'​informations."​
 + exit 2
 + fi
 + ;;
 +                R)
 + if [ $OPTSCRIPT = "​."​ ];then
 +                        OPTSCRIPT="​restauration"​
 + else
 +                                echo "​l'​option -R n s'​utilise pas avec les options -S ou -C"
 +                                echo "​Saisissez « bash script_sauvegarde.sh --help » pour plus d'​informations."​
 +                                exit 2
 +                        fi
 +                        ;;
 +                r)
 +                        if [ $OPTSCRIPT = "​restauration"​ ];then
 +                                DOSSIER="​$OPTARG.*"​
 +                        else
 +                                echo "​l'​option -r ne fonctionne qu'​avec l'​option principale -R"
 +                                echo "​Saisissez « bash script_sauvegarde.sh --help » pour plus d'​informations."​
 +                                exit 2
 +                        fi
 +                        ;;
 + S)
 +                        if [ $OPTSCRIPT = "​."​ ];then
 + echo "​Sauvegarde des répertoires utilisateur"​
 + OPTSCRIPT="​sauvegarde"​
 + else
 +                                echo "​l'​option -S n s'​utilise pas avec les options -C ou -R"
 +                                echo "​Saisissez « bash script_sauvegarde.sh --help » pour plus d'​informations."​
 +                                exit 2
 +                        fi
 + ;;
 +                u)
 +                        if [ $OPTSCRIPT = "​restauration"​ ];then
 +                                USER="​$OPTARG.*"​
 +                        else
 +                                echo "​l'​option -u ne fonctionne qu'​avec l'​option principale -R"
 +                                echo "​Saisissez « bash script_sauvegarde.sh --help » pour plus d'​informations."​
 +                                exit 2
 +                        fi
 +                        ;;
 + :)
 + echo "​L'​option $OPTARG requiert un argument"​
 + exit 1
 + ;;
 + \?)
 + echo "​$OPTARG : option invalide"​
 + echo "​Saisissez « bash script_sauvegarde.sh --help » pour plus d'​informations."​
 + exit 2
 + ;;
 + esac
 +done
 +
 +
 +###################################################################​
 +###########################​ DEBUT SCRIPT ##########################​
 +###################################################################​
 +
 +## Définit l'​action selon les options passé dans la commande
 +case $OPTSCRIPT in
 + sauvegarde)
 + if [ $SAUVCOMP = 1 ];then
 + bash $REPSCRIPT/​script_sauvegarde.sh -f
 + else
 + bash $REPSCRIPT/​script_sauvegarde.sh
 + fi
 + ;;
 + restauration)
 + echo "​RESTAURATION"​
 + #echo "-u $USER -r $DOSSIER -f $FICHIER -e $EXTENSION -d $DATER"​
 + bash $REPSCRIPT/​script_restauration.sh -u "​$USER"​ -r "​$DOSSIER"​ -f "​$FICHIER"​ -e "​$EXTENSION"​ -d "​$DATER"​
 + ;;
 + configuration)
 + echo "​..."​
 + if [ $CIPNAS = "​."​ ] || [ $CREPFNAS = "​."​ ];then
 + echo "Il faut renseigné l'​option -i suivi de l'ip du Serveur de fichier et l'​option -m suivi du chemin du montage NFS"
 + echo "​Saisissez « bash script_sauvegarde.sh --help » pour plus d'​informations."​
 + exit 2
 + else
 + bash $REPSCRIPT/​script_conf.sh $CIPNAS $CREPFNAS
 + echo "​Effectué!"​
 + fi</​code>​
 +
 +==script_conf.sh==
 +
 +<​code=bash>#​!/​bin/​sh
 +##################################################################​
 +# PROJET : SCRIPT DE SAUVEGARDE ​                                 #
 +# FICHIER : script_conf.sh ​                                      #
 +# EQUIPE : M.BAILEUL R.DOITEAU S.CHEVRIER M.CHANTELOUP ​          #
 +##################################################################​
 +
 +FICCONF=/​mnt/​sauvegarde/​script/​ConfNas
 +echo "​$1"​ >​$FICCONF
 +echo "​$2"​ >>​$FICCONF</​code>​
 +
 +==script_listfichier.sh==
 +
 +<​code=bash>#​!/​bin/​sh
 +##################################################################​
 +# PROJET : SCRIPT DE SAUVEGARDE ​                                 #
 +# FICHIER : script_listfichier.sh ​                               #
 +# EQUIPE : M.BAILEUL R.DOITEAU S.CHEVRIER M.CHANTELOUP ​          #
 +##################################################################​
 +
 +###################################################################​
 +############################​ VARIABLES ############################​
 +###################################################################​
 +FICHIER=$1
 +REPSAUV=$2
 +NOMSAUV=$3
 +REPLOG=$4
 +
 +###################################################################​
 +#########################​ DEBUT PROGRAMME #########################​
 +###################################################################​
 +#Lecture du fichier
 +echo "​-------------------------- $NOMSAUV --------------------------"​ > $REPLOG/​tmplistefic_modif.log
 +for LIGNE in $(cat $FICHIER); do
 + echo "​$LIGNE:​$REPSAUV:​$NOMSAUV"​ >> $REPLOG/​tmplistefic_modif.log
 +done</​code>​
 +
 +==script_restauration.sh==
 +
 +<​code=bash>​
 +#!/bin/sh
 +##################################################################​
 +# PROJET : SCRIPT DE SAUVEGARDE ​                                 #
 +# FICHIER : script_restauration.sh ​                              #
 +# EQUIPE : M.BAILEUL R.DOITEAU S.CHEVRIER M.CHANTELOUP ​          #
 +##################################################################​
 +
 +
 +###################################################################​
 +############################​ VARIABLES ############################​
 +###################################################################​
 +REPSAVE=/​mnt/​sauvegarde
 +REPSAUVALL=$REPSAVE/​complete
 +REPSAUVINC=$REPSAVE/​incrementale
 +REPLOG=$REPSAVE/​journal
 +REPSCRIPT=$REPSAVE/​script
 +IPNAS=`head -1 $REPSCRIPT/​ConfNas`
 +REPFNAS=`tail -1 $REPSCRIPT/​ConfNas`
 +REPHOME=/​mnt/​home
 +SAVELIST=$REPSAUVINC/​.savelist
 +DATESAUV=`date +%Y_sem-%W_date-%m-%d_%Hh-%Mm`
 +FICLOG=$REPLOG/​detail_$DATESAUV.log
 +SEMAINE=`date +%W`
 +
 +###################################################################​
 +#############################​ OPTION ##############################​
 +###################################################################​
 +## Test et Traitement des options
 +while getopts ":​u:​r:​f:​d:​e:"​ option
 +do
 +        case $option in
 + d)
 + DATER=$OPTARG
 + ;;
 + e)
 + EXTENSION=$OPTARG
 + ;;
 + f)
 + FICHIER=$OPTARG
 + ;;
 + r)
 + DOSSIER=$OPTARG
 + ;;
 + u)
 + USER=$OPTARG
 + ;;
 +        esac
 +done
 +
 +
 +
 +###################################################################​
 +###########################​ DEBUT SCRIPT ##########################​
 +###################################################################​
 +#echo "USER : $USER"
 +#echo "​DOSSIER : $DOSSIER"​
 +#echo "​FICHIER : $FICHIER"​
 +#echo "​EXTENSION : $EXTENSION"​
 +#echo "DATER : $DATER"​
 +
 +#echo "egrep '​^/​mnt/​home/​$USER$DOSSIER$FICHIER$EXTENSION$DATER'​ $REPLOG/​listfichier_s$SEMAINE.log &> $REPLOG/​tmpRest.log"​
 +mount -t nfs $IPNAS:​$REPFNAS $REPHOME
 +var=/​mnt/​home/​$USER$DOSSIER$FICHIER$EXTENSION$DATER
 +egrep $var $REPLOG/​listfichier_s$SEMAINE.log &> $REPLOG/​tmpRest.log
 +while read ligne;do
 + FIC=`echo "​$ligne"​|cut -d":"​ -f1`
 + REPS=`echo "​$ligne"​|cut -d":"​ -f2`
 + NOMS=`echo "​$ligne"​|cut -d":"​ -f3`
 + #echo
 + #echo "​fichier : $FIC"
 + #echo "REP : $REPS"
 + #echo "NOM : $NOMS"
 + if [ $REPS = CPT ];then
 + REPTAR=$REPSAUVALL
 + else
 + REPTAR=$REPSAUVINC
 + fi
 + #echo "tar xPvf $REPTAR/​$NOMS $FIC"
 + tar xvPfJ $REPTAR/​$NOMS $FIC
 +done < $REPLOG/​tmpRest.log
 +rm $REPLOG/​tmpRest.log
 +umount $REPHOME</​code>​
 +
 +==script_sauvegarde.sh==
 +
 +<​code=bash>#​!/​bin/​sh
 +##################################################################​
 +# PROJET : SCRIPT DE SAUVEGARDE ​                                 #
 +# FICHIER : script_sauvegarde.sh ​                                #
 +# EQUIPE : M.BAILEUL R.DOITEAU S.CHEVRIER M.CHANTELOUP ​          #
 +##################################################################​
 +
 +
 +###################################################################​
 +###################​ TEST ET LECTURE DES OPTIONS ###################​
 +###################################################################​
 +SAUVCOMP=0
 +# Test et Traitement des options
 +while getopts "​f"​ option
 +do
 + case $option in
 + f)
 + #echo "​Sauvegarde Complète forcée"​
 + echo "​..."​
 + SAUVCOMP=1
 + ;;
 + esac
 +done
 +
 +
 +###################################################################​
 +############################​ VARIABLES ############################​
 +###################################################################​
 +REPSAVE=/​mnt/​sauvegarde
 +REPSAUVALL=$REPSAVE/​complete
 +REPSAUVINC=$REPSAVE/​incrementale
 +REPLOG=$REPSAVE/​journal
 +REPSCRIPT=$REPSAVE/​script
 +IPNAS=`head -1 $REPSCRIPT/​ConfNas`
 +REPFNAS=`tail -1 $REPSCRIPT/​ConfNas`
 +REPHOME=/​mnt/​home
 +SAVELIST=$REPSAUVINC/​.savelist
 +DATESAUV=`date +%Y_sem-%W_date-%m-%d_%Hh-%Mm`
 +FICLOG=$REPLOG/​detail_$DATESAUV.log
 +JOURSAUVALL=lundi
 +JOURJ=`date +%A`
 +SEMAINE=`date +%W`
 +
 +###################################################################​
 +###########################​ DEBUT SCRIPT ##########################​
 +###################################################################​
 +
 +## Sauvegarde des répertoires utilisateurs
 +echo "​subject:​ Sauvegarde du `date`">​$FICLOG
 +echo "​________________________________ Déroulement de la dernière sauvegarde effectué________________________________"​ >>​$FICLOG
 +echo "​******Démontage de /mnt/home, dans la cas ou il serait déja monté(par exemple lors de test sur le serveur BackUp"​ >>​$FICLOG
 +umount /mnt/home &>>​$FICLOG
 +echo "​******Montage nfs du FREENAS vers /​mnt/​home"​ >>​$FICLOG
 +mount -t nfs $IPNAS:​$REPFNAS $REPHOME &>>​$FICLOG
 +if [ $? = 0 ];then
 + echo "​****Le montage c'est effectué corectement,​ On va regardé si il s'agit du jour de sauvegarde complete ou incrementale"​ >>​$FICLOG
 + echo "​----------------------------------------------- DEBUT DE LA SAUVEGARDE -----------------------------------------------"​ >>​$FICLOG
 + if [ $JOURSAUVALL = $JOURJ ] || [ $SAUVCOMP = 1 ];then
 + echo "​......"​
 + echo "​**Sauvegarde COMPLETE"​ >>​$FICLOG
 + rm -fv $SAVELIST &>>​$FICLOG
 + tar -v -J -P --create --file=$REPSAUVALL/​sauv_$DATESAUV.tar.xz --listed-incremental=$SAVELIST $REPHOME &>​$REPLOG/​tmpTar.log
 + cat $REPLOG/​tmpTar.log &>>​$FICLOG
 + grep ^$REPHOME $REPLOG/​tmpTar.log >​$REPLOG/​tmpListFic2.log
 + grep -v '/​$'​ $REPLOG/​tmpListFic2.log >​$REPLOG/​tmpListFic.log
 + bash $REPSCRIPT/​script_listfichier.sh $REPLOG/​tmpListFic.log CPT sauv_$DATESAUV.tar.xz $REPLOG
 + cat $REPLOG/​tmplistefic_modif.log >> $REPLOG/​listfichier_s$SEMAINE.log
 + else
 + echo "​.."​
 + echo "​**Sauvegarde INCEMENTALE"​ >>​$FICLOG
 + tar -v -P -J --create --file=$REPSAUVINC/​sauv_$DATESAUV.tar.xz --listed-incremental=$SAVELIST $REPHOME &>​$REPLOG/​tmpTar.log
 + cat $REPLOG/​tmpTar.log &>>​$FICLOG
 + grep ^$REPHOME $REPLOG/​tmpTar.log >>​$REPLOG/​tmpListFic2.log
 + grep -v '/​$'​ $REPLOG/​tmpListFic2.log >​$REPLOG/​tmpListFic.log
 + bash $REPSCRIPT/​script_listfichier.sh $REPLOG/​tmpListFic.log INC sauv_$DATESAUV.tar.xz $REPLOG
 + cat $REPLOG/​tmplistefic_modif.log >> $REPLOG/​listfichier_s$SEMAINE.log
 + fi
 + rm $REPLOG/​tmp*
 + echo "​."​
 + echo "​----------------------------------------------- FIN DE LA SAUVEGARDE -----------------------------------------------"​ >>​$FICLOG
 + echo "​Effectué!"​
 +else
 + echo "​Erreur montage nfs!!!"​ > $REPLOG/​mail.log
 +fi
 +umount $REPHOME
 +cat "​$FICLOG"​ | msmtp doiteau.romain@gmail.com</​code>​
  
 
sauvegarde.1387878055.txt.gz · Dernière modification: 2019/05/11 14:35 (modification externe)     Haut de page